Skip to content

Instantly share code, notes, and snippets.

@knowblesse
Last active July 1, 2020 06:35
Show Gist options
  • Save knowblesse/249f2383b5807714732ab9c222607b0d to your computer and use it in GitHub Desktop.
Save knowblesse/249f2383b5807714732ab9c222607b0d to your computer and use it in GitHub Desktop.
from pathlib import Path
import shutil
import re
baselocation = Path(r'D:/정지훈/20FEB')
copylocation = Path(r'C:/Users/SunwhiTDT/Desktop/')
print('Base Location : ')
print(baselocation)
print('\n')
print('Searched Location : ')
# Glob 함수는 조건에 맞는 파일을 찾아줌.
# **는 \ 기호를 포함하여 모든 문자열 검색
for i in baselocation.glob(r'Hab1/**/*avi'):
print(str(i))
print('Copying these files to ' + str(copylocation))
# Glob 함수로 경로들을 쭉 뽑아온 후, regexp를 사용해서 필요한 문자열 추출
# 참고로 \ 만 쓰면 그 뒤 character와 함께 escape sequence로 인식되기 때문에 두번 사용해야 함.
# 단 regexp에서는 규칙을 쓸때도 escape sequence를 고려해서 translate 하기 때문에 \ 하나를 표현하기 위해서는 \를 4번 써야함.
# 한세트는 python 자체에서 \ 하나로 해석을 하고, 다른 한 세트는 regexp 에서 하나로 해석을 하고.
# 대신 규칙 문자열 앞에 r을 붙여주면 아마 python에서 escape sequence로 생각하기 않기에 두번만 쓰면 됨.
# 그래서 아래에는 전부 두번만 사용.
for i in baselocation.glob(r'Hab1/**/*avi'):
subject = '20FEB' + re.search(r'\\\d\\',str(i)).group()[1]
experiment = re.search(r'\\....\\\d\\',str(i)).group()[1:5]
output_filename = subject + '_' + experiment + '.avi'
print(i)
shutil.copy2(i,Path(copylocation,output_filename))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment