파일명을 변경하거나 폴더를 옮기는 작업은 주로 시스템 관리, 데이터 정리, 로그 파일 관리 등에서 필수적입니다.
예를 들어, 날짜 정보가 포함된 파일을 날짜별로 정리하거나 텍스트 파일의 내용을 읽고 분석하는 등의 작업이 있습니다. 이 과정에서 Python의 강력한 라이브러리를 활용하면 업무를 효율적으로 자동화할 수 있습니다.
Python 라이브러리 소개
Python에는 파일을 다루기 위한 다양한 라이브러리가 존재합니다. 이 중에서 주로 사용하는 라이브러리는 shutil과 os 라이브러리입니다. 이 라이브러리들을 통해 파일과 폴더를 쉽게 다룰 수 있습니다.
- shutil 라이브러리
- 파일을 복사하고 이동하는 등의 고급 파일 작업을 지원합니다.
- os 라이브러리
- 파일과 폴더를 생성, 삭제, 이동하는 기본적인 작업을 지원합니다.
파일 목록 조회하기
우선, 특정 폴더의 파일 목록을 조회하는 방법을 살펴보겠습니다. 파일 목록을 조회하기 위해 os.listdir 함수를 사용할 수 있습니다.
이 함수는 입력한 경로 안에 있는 모든 파일 목록을 리스트로 반환합니다.
import os
orig_dir = "C:\\example_folder"
out_dir = "C:\\organized_folder"
file_list = os.listdir(orig_dir)
print(file_list)
파일명을 분석하여 날짜 정보를 추출하는 과정입니다.
이를 통해 파일을 날짜별로 정리할 수 있습니다. 파일명의 특정 패턴을 사용하여 날짜를 추출하는 방법을 살펴보겠습니다.
for f_name in file_list:
f_date = f_name[5:15] # 예시로 파일명에서 날짜 부분을 추출
f_date_parts = f_date.split('-')
year, month, day = f_date_parts[0], f_date_parts[1], f_date_parts[2]
print(f"Year: {year}, Month: {month}, Day: {day}")
폴더 생성하기
날짜별로 파일을 정리하기 위해 폴더를 생성하는 과정입니다.
os.makedirs 함수를 사용하여 필요한 폴더 구조를 자동으로 생성할 수 있습니다.
target_dir = os.path.join(out_dir, year, month, day)
if not os.path.exists(target_dir):
os.makedirs(target_dir)
파일 복사하기
파일을 새로운 폴더로 복사하여 정리하는 과정입니다.
shutil.copyfile 함수를 사용하여 원본 파일을 대상 폴더로 복사할 수 있습니다.
import shutil
for f_name in file_list:
orig_file = os.path.join(orig_dir, f_name)
target_file = os.path.join(target_dir, f_name)
shutil.copyfile(orig_file, target_file)
print(f"Copied {orig_file} to {target_file}")
프로그램 실행 결과 확인
프로그램을 실행하여 파일이 정상적으로 복사되고 정리되는지 확인합니다. 다음은 예제 프로그램 실행 결과입니다.
Copied C:\example_folder\file_2024-05-26.txt to C:\organized_folder\2024\05\26\file_2025-05-26.txt
추가 내용: 자주 사용하는 파이썬 파일 다루기 코드
폴더 내 목록 보기: os.listdir
os.listdir 함수를 사용하여 지정한 경로 내에 존재하는 파일과 폴더의 목록을 반환합니다.
import os
files = os.listdir("C:\\organized") print(files)
파일 및 폴더 존재 유무 확인하기: os.path.exists
os.path.exists 함수를 사용하여 특정 경로에 파일 또는 폴더가 존재하는지 확인할 수 있습니다.
from os.path import exists
if exists("C:\\Document"): print("Python 3.12 is installed")
폴더 생성하기: os.makedirs
os.makedirs 함수를 사용하여 원하는 경로에 폴더를 생성합니다.
from os import makedirs makedirs("C:\\MyFolder")
파일 복사하기: shutil.copyfile
shutil.copyfile 함수를 사용하여 파일을 원본 경로에서 대상 경로로 복사합니다.
from shutil import copyfile
copyfile("C:\\Downloads\\download.txt", "C:\\Downloads\\copied.txt")
폴더 복사하기: shutil.copytree
shutil.copytree 함수를 사용하여 폴더를 원본 경로에서 대상 경로로 복사합니다.
from shutil import copytree
copytree("C:\\Downloads", "C:\\Copied_Downloads")
폴더 삭제하기: shutil.rmtree
shutil.rmtree 함수를 사용하여 폴더와 그 안의 모든 파일을 삭제합니다.
from shutil import rmtree
rmtree("C:\\Copied_Downloads")
파일 삭제하기: os.unlink
os.unlink 함수를 사용하여 파일을 삭제합니다.
from os import unlink
unlink("C:\\Downloads\\download.txt")
'Dev-기타 > Python' 카테고리의 다른 글
웹 크롤링의 기초 (feat. robots.txt) (0) | 2023.07.17 |
---|---|
[학습] Jupyter 다른 사람과 같이 사용하기 (0) | 2023.07.17 |