반응형
Python 프로젝트에서 폴더 관리 자동화
프로젝트에서 구성 파일이나 사용자 데이터 폴더를 자동으로 관리하는 것은 필수적입니다. 이 글에서는 파이썬을 사용하여 지정된 폴더를 자동으로 생성하고, 기존 폴더가 있을 경우 내부 파일을 삭제하여 초기화하는 방법을 소개합니다.
기초 개념
1. os 모듈
- Python 표준 라이브러리로 파일 및 폴더 관리에 사용됩니다.
- os.path.exists() : 지정된 경로가 존재하는지 확인.
- os.makedirs() : 지정된 경로에 폴더를 생성합니다.
2. shutil 모듈
- 파일 및 폴더 작업을 더 쉽게 처리할 수 있도록 다양한 유틸리티를 제공합니다.
- shutil.rmtree() : 폴더와 하위 내용을 재귀적으로 삭제합니다.
기본 코드 예제
import os
import shutil
if not os.path.exists(self.userAppConfigOutputPath):
os.makedirs(self.userAppConfigOutputPath)
else:
# 폴더가 존재하면 내부 비우기
for filename in os.listdir(self.userAppConfigOutputPath):
file_path = os.path.join(self.userAppConfigOutputPath, filename)
try:
if os.path.isfile(file_path) or os.path.islink(file_path):
os.unlink(file_path) # 파일이나 링크 제거
elif os.path.isdir(file_path):
shutil.rmtree(file_path) # 하위 폴더 제거
except Exception as e:
print(f'Failed to delete {file_path}. Reason: {e}')
코드 설명
- os.path.exists()로 지정된 폴더 경로가 존재하는지 확인.
- 폴더가 없으면 os.makedirs()로 생성.
- 폴더가 존재하면 내부 파일과 폴더를 삭제하여 초기화.
- 예외 발생 시 오류 메시지를 출력.
반응형
고급 내용
1. 사용자 권한 확인
- 삭제하려는 파일이나 폴더가 시스템에서 보호된 경우 예외 발생.
- 이 경우 관리자 권한으로 실행하거나, 특정 권한을 부여해야 합니다.
2. 백업 및 복원
- 폴더를 삭제하기 전에 백업을 자동으로 생성할 수 있습니다.
- 예제:
backup_path = self.userAppConfigOutputPath + "_backup"
if os.path.exists(backup_path):
shutil.rmtree(backup_path)
shutil.copytree(self.userAppConfigOutputPath, backup_path)
3. 조건부 파일 삭제
- 특정 파일 확장자만 삭제하거나, 일정 기간이 지난 파일만 삭제하도록 조건 추가.
for filename in os.listdir(self.userAppConfigOutputPath):
if filename.endswith(".log"):
os.unlink(os.path.join(self.userAppConfigOutputPath, filename))
반응형
'코딩취미 > Python' 카테고리의 다른 글
Python으로 파일 및 경로 확인, 생성, 삭제 자동화하기 (0) | 2025.05.10 |
---|---|
PySide6 팝업에서 Cancel 클릭 시 메인 GUI 닫기 (0) | 2025.05.09 |
Python psutil 라이브러리로 시스템 정보 수집 및 실시간 모니터링 만들기 (0) | 2025.05.03 |
경로 생성 시 오류 없이 안전하게 처리하는 구조 (0) | 2025.05.03 |
Pandas 정렬 고급편: 다중 조건 정렬과 GroupBy 후 정렬 완전 정복 (0) | 2025.05.03 |