반응형
Python으로 파일 복사 하는 방법
특정 디렉터리 안에 있는 모든 jpg 파일을 옮기거나, 머신러닝의 모델 파일들을 추려내거나, 특정 문자열을 포함한 파일만을 추출해서 복사하고 싶을 때, 파이썬을 통해 간편히 파일 복사가 가능하다.
import os
from glob import glob
import shutil
# 디렉터리 안에 계층 구조가 2단계 있을 때
jpg_list = glob.glob('target_dir/**/**/*.jpg')
# outputs 디렉터리 안에 있는 .pth만 가져오고 싶을 때
model_list = glob.glob('outputs/*.pth')
# 그 후, 원하는 위치로 복사
dest_list = ['your_target_dir', ..., 'your_target_dir']
for src, dest in zip(model_list, dest_list):
# makedirs를 exist_ok 플래그와 함께 사용하면 해당 위치에 디렉터리가 없을 경우 생성함
os.makedirs(os.path.dirname(dest), exist_ok=True)
shutil.copy(src, dest)
위와 같이 glob을 통해서 특정 패턴의 파일 경로들을 추출하고, shutil을 통해서 복사하면 수작업으로 하면 굉장히 오래 걸릴 삽질을 순식간에 마무리 할 수 있다.
또한, 아마도 복사하면서 가장 많이 발생하는 이슈는, 해당 위치에 디렉터리가 존재하지 않을 때 발생하는 cannot find ~ 류의 에러일텐데, 이를 os.makedirs로 미리 만들어주고 사용하면 이슈 없이 활용이 가능하다.
반응형
'Development > Python' 카테고리의 다른 글
[Python / JSON] Python JSON 파일 한글 깨짐 해결법 (0) | 2022.03.20 |
---|---|
[Python / Jupyter] Jupyter Lab/Notebook에서 python script를 반복문으로 실행하는 방법 (0) | 2022.03.17 |
[Python] N까지의 소수 구하기 최적화 방법 (0) | 2021.12.18 |
[Python] 피보나치(Fibonacci) 수열 구하기 (0) | 2021.12.18 |
[Python / 정렬] Python으로 다양한 Sorting 구현하기 (0) | 2021.12.18 |