파일 이동, 폴더 변경 - shutil
들어가며
파일을 이동할 때 사용하는 윈도우 cmd의 mv 명령어를 파이썬에서도 사용할 수 있습니다. 파이썬의 shutil을 활용하면, 여러 개의 파일을 빠르게 이동할 수 있습니다. 1개의 파일 이동뿐만 아니라 여러 개의 파일 이동도 가능합니다.
1) 1개의 파일 이동
먼저 필요한 패키지인 shutil을 import 합니다. shutil은 파이썬 내장 메모리에 포함되어 있으므로 따로 설치가 필요하지 않습니다.
import shutil
바탕화면에 위치한 test_sample.txt를 바탕화면의 imsi 폴더로 이동해 보겠습니다. 다음과 같이 shutil.move를 통해 이동 전 경로와 이동 후 경로를 넣어주기만 하면 됩니다.
shutil.move('C:/Users/USER/Desktop/test_sample.txt', 'C:/Users/USER/Desktop/imsi/test_sample.txt')
os 패키지의 listdir을 통하여 imsi 폴더의 파일 리스트를 확인하면, test_sample.txt가 이동된 것을 확인할 수 있습니다.
import os
print('imsi directory list: ', os.listdir('C:/Users/USER/Desktop/imsi/'))
2) 여러 개의 파일 이동
shutil을 통해 조건과 함께 여러 개의 파일 이동 또한 가능합니다. test_dir 폴더에 있는 10개의 txt파일들을 짝수/홀수 번호에 따라 각각의 폴더로 이동해보겠습니다.
먼저 필요한 패키지인 os와 shutil을 import 합니다.
import os
import shutil
path에 test_dir 폴더의 경로를 넣고, txt 파일만 f_list로 불러옵니다.
path = 'C:/Users/User/Desktop/test_dir/'
f_list = os.listdir(path)
f_list = [file for file in f_list if file.find('.txt') != -1]
f_list
for문과 inf문을 활용하여 test 뒤의 숫자가 짝수 번호로 끝나면 test_even 폴더로 이동하고, 홀수 번호로 끝나면 test_odd 폴더로 이동합니다.
for file in f_list:
if int(file[5:7]) % 2 == 0: # 짝수 번호로 끝나면,
new_path = path + 'test_even/' + file # test_even 폴더로 이동
shutil.move(path + file, new_path)
else: # 홀수 번호로 끝나면,
new_path = path + 'test_odd/' + file # test_odd 폴더로 이동
shutil.move(path + file, new_path)
print('test_even: ', os.listdir(path + 'test_even/'))
print('test_odd: ', os.listdir(path + 'test_odd/'))
'Python' 카테고리의 다른 글
[파이썬] 피벗 테이블 멀티 인덱스 해제 (4) | 2025.04.06 |
---|---|
[파이썬] Unix UTC 시간 변환 - datetime, utcfromtimestamp (0) | 2025.04.05 |
[파이썬] datetime 타입 변환/ 날짜 요소 추출(dt)/ 현재 날짜, 시간 표현 (2) | 2025.04.04 |
[파이썬] 내장함수 str - len, split, replace (0) | 2025.04.03 |
[파이썬] 히트맵 그래프, 원하는 색상 설정 - seaborn, matplotlib (4) | 2025.04.02 |