728x90
반응형
Python으로 파일 정렬기 만들기
안녕하세요! 프로그래밍과 블로그를 동시에 즐기시는 여러분, 오늘은 Python을 이용해서 간단한 파일 정렬기를 만들어 보겠습니다. 이 프로그램은 특정 디렉토리에 있는 파일들을 이름이나 크기, 수정 날짜에 따라 정렬해주는 유용한 도구입니다. 다양한 상황에서 파일 관리가 있어야 할 분들에게 많은 도움이 될 것 같습니다. 그럼 시작해볼까요?
들어가며
파일 정리는 항상 번거로운 일입니다. 특히 프로젝트나 학업을 하다 보면 다양한 파일들이 생성되기 마련이죠. 이러한 파일들을 잘 관리하지 않으면 필요한 파일을 찾기 힘들고, 깔끔한 정리를 방해하게 됩니다. 이때 사용할 수 있는 것이 바로 파일 정렬기입니다!
코드 작성하기
먼저, Python의 os
와 shutil
모듈을 사용하여 디렉토리 내의 파일을 정렬하는 코드를 작성해보겠습니다.
import os
import shutil
def sort_files(directory, sort_by='name'):
if not os.path.isdir(directory):
print("유효하지 않은 디렉토리입니다.")
return
# 디렉토리 내의 모든 파일의 목록 가져오기
files = os.listdir(directory)
files = [f for f in files if os.path.isfile(os.path.join(directory, f))]
# 정렬 기준에 따라 파일 정렬하기
if sort_by == 'name':
files.sort()
elif sort_by == 'size':
files.sort(key=lambda x: os.path.getsize(os.path.join(directory, x)))
elif sort_by == 'modified':
files.sort(key=lambda x: os.path.getmtime(os.path.join(directory, x)))
# 정렬된 파일 출력하기
for file in files:
print(file)
# 디렉토리와 정렬 기준 지정 후 함수 실행
sort_files('C:/your/directory/path', sort_by='size')
코드 설명하기
- 라이브러리 임포트:
os
는 운영 체제의 기본 기능을 사용하기 위해 필요하며,shutil
은 파일 복사, 이동 등을 처리합니다. - 함수 정의:
sort_files
함수를 정의하여 특정 디렉토리 내의 파일을 정렬할 수 있도록 합니다. - 디렉토리 검증: 주어진 경로가 유효한 디렉토리인지 확인합니다.
- 파일 목록 가져오기:
os.listdir
함수를 활용하여 디렉토리 내의 모든 파일을 목록으로 가져옵니다. - 파일 정렬하기: 이름, 크기, 수정 날짜에 따라 파일을 정렬합니다. 각 기준에 따라 정렬 로직이 다르게 구성되어 있습니다.
- 정렬된 결과 출력하기: 정렬된 파일 목록을 출력합니다.
예제 실행 결과
위 코드를 실행하면 지정한 디렉토리 내의 파일들이 크기 순서로 정렬되어 출력됩니다. 예를 들어, C:/your/directory/path
에 있는 파일들이 크기별로 정렬되어 나타나게 되죠.
추가적으로
이 기본적인 파일 정렬기 기능 외에도 몇 가지 확장 아이디어가 있습니다:
- 서브디렉토리 포함 여부 설정: 서브디렉토리 내의 파일도 함께 정렬할 수 있는 기능 추가.
- 파일 확장자별 정렬: 특정 확장자를 가진 파일만 선택적으로 정렬하는 기능 추가.
- 파일 이동 기능: 정렬된 파일들을 새로운 디렉토리로 이동하는 기능 추가.
마무리하며
이번 포스트에서는 Python을 통해 파일 정렬기를 만드는 방법을 알아보았습니다. 시간이 지나도 필요할 수 있는 파일 정리의 문제를 해결하는 데 도움이 되셨기를 바랍니다. 여러분도 프로그래밍을 통해 자신만의 유용한 도구를 만들어 보세요!
질문이 있으시면 언제든 댓글로 남겨주세요. 다음 포스트에서 뵙겠습니다!
728x90
반응형
'개발' 카테고리의 다른 글
Spring Cloud Gateway로 비동기 웹 애플리케이션 구축하기 (0) | 2024.11.13 |
---|---|
Axios에서 URL 특수문자로 인한 서버 에러 해결법 소개 (0) | 2024.11.13 |
마이크로서비스 아키텍처의 특징과 이점 이해하기 (3) | 2024.11.13 |
Python으로 간단한 문서 분석기 만들기와 활용 방법 (5) | 2024.11.13 |
데이터 시각화를 통한 인사이트 발견하기 (3) | 2024.11.13 |