매일 아침 출근하자마자 바탕화면을 꽉 채운 수백 개의 잡다한 파일들을 보며 한숨을 쉬고 계신다면, 오늘 소개해 드릴 파이썬 파일 자동 정리 기술이 잃어버린 여러분의 업무 시간을 찾아줄 완벽한 구원자가 될 것입니다.
우리의 컴퓨터 ‘다운로드’ 폴더나 ‘바탕화면’은 그야말로 카오스(혼돈) 상태입니다. 어제 거래처에서 받은 10월_결산_최종.xlsx, 디자인팀에서 넘겨준 현장사진_01.jpg, 조달청에서 다운로드한 과업지시서.pdf가 한데 뒤엉켜 있습니다. 급하게 상무님께 보고할 자료를 찾으려는데 파일 더미 속에서 길을 잃고 마우스 휠만 위아래로 굴리다 식은땀을 흘린 경험, 40대 실무자라면 누구나 한 번쯤 있으실 겁니다.
시간 날 때마다 “새 폴더”를 만들어서 엑셀은 엑셀끼리, 사진은 사진끼리 드래그해서 옮겨보지만, 바쁜 업무에 치이다 보면 며칠 만에 다시 원래의 쓰레기장으로 돌아가 버립니다. 이 지겨운 숨바꼭질을 끝내기 위해, 컴퓨터가 스스로 파일을 분류하고 청소하게 만드는 실무 코드를 짜보았습니다.
외부 라이브러리 설치가 필요 없는 순정 파이썬의 힘

이전 포스팅에서 다루었던 웹 크롤링이나 셀레니움 같은 기술들은 파이썬에 별도의 외부 장비(라이브러리)를 설치해야 했습니다. 하지만 파일을 복사하고 옮기는 작업은 컴퓨터 운영체제의 가장 기본적이고 핵심적인 기능이기 때문에, 파이썬을 설치할 때 기본으로 제공되는 ‘순정 부품’만으로도 충분히 구현이 가능합니다.
바로 os 모듈과 shutil 모듈입니다. os는 “지금 바탕화면에 어떤 파일들이 있는지 싹 훑어봐”라고 명령하는 정찰병 역할을 하고, shutil은 “저기 있는 엑셀 파일들을 집어서 ‘엑셀 모음’ 폴더로 이사시켜”라고 명령하는 이삿짐센터 역할을 합니다. 복잡한 설치 과정 없이 터미널 창에서 곧바로 코드를 짤 수 있어 초보자에게 이보다 더 좋은 입문용 자동화 프로젝트는 없습니다.
40대 실무자를 위한 현실적인 파이썬 파일 자동 정리 코드
아래 코드는 제가 매주 금요일 퇴근하기 직전, 혹은 작업 스케줄러를 통해 자동으로 실행되도록 걸어두는 실전 스크립트입니다. 지정한 폴더 안의 파일들을 확장자별(엑셀, 이미지, 문서 등)로 감별하여 스스로 새 폴더를 만들고 쏙쏙 집어넣어 줍니다.
Python
import os
import shutil
# 1. 정리를 진행할 난장판 폴더의 경로 (예: 바탕화면 또는 다운로드 폴더)
target_folder = r"C:\Users\Admin\Downloads"
# 2. 파일 확장자별로 들어갈 '폴더 이름'을 미리 정의하기
extension_mapping = {
"엑셀파일_모음": [".xlsx", ".xls", ".csv"],
"문서파일_모음": [".pdf", ".hwp", ".docx", ".pptx"],
"이미지_모음": [".jpg", ".jpeg", ".png", ".gif"]
}
# 3. 폴더 안의 모든 파일 목록을 싹 가져오기
file_list = os.listdir(target_folder)
print(f"총 {len(file_list)}개의 파일을 발견했습니다. 정리를 시작합니다.")
for file_name in file_list:
file_path = os.path.join(target_folder, file_name)
# 폴더가 아닌 '파일'인 경우에만 작업 수행
if os.path.isfile(file_path):
# 파일 이름에서 점(.)을 기준으로 확장자만 떼어내기 (예: .xlsx)
_, ext = os.path.splitext(file_name)
ext = ext.lower() # 대문자 확장자를 소문자로 통일
# 4. 이 확장자가 어느 폴더로 가야 하는지 매핑 테이블에서 찾기
target_dir_name = "기타_미분류" # 기본값 설정
for folder_name, exts in extension_mapping.items():
if ext in exts:
target_dir_name = folder_name
break
# 5. 파일을 넣을 새 폴더 경로 만들기
move_dir = os.path.join(target_folder, target_dir_name)
# 해당 이름의 폴더가 없다면 새로 만들기
if not os.path.exists(move_dir):
os.makedirs(move_dir)
# 6. 드디어 이삿짐 옮기기 (파일 이동)
try:
shutil.move(file_path, move_dir)
except Exception as e:
print(f"[{file_name}] 이동 중 에러 발생: {e}")
print("바탕화면 정리가 완벽하게 끝났습니다! 칼퇴근하십시오.")
이 코드를 처음 실행하던 날, 수백 개의 잡다한 파일로 꽉 막혀 있던 폴더 창이 1초 만에 깔끔한 4개의 폴더(엑셀, 문서, 이미지, 기타)로 싹 정리되는 것을 보며 느꼈던 그 시원함은 말로 다 할 수 없습니다.

현업 적용 시 주의해야 할 ‘중복 파일’ 에러 방지법
실무에서 파이썬 파일 자동 정리 코드를 자주 돌리다 보면 십중팔구 shutil.Error: Destination path already exists 라는 붉은색 에러를 마주하게 됩니다.
이것은 이삿짐을 옮기려고 ‘엑셀파일_모음’ 폴더 안에 들어갔더니, 똑같은 이름의 견적서.xlsx 파일이 이미 존재할 때 파이썬이 당황해서 내뱉는 에러입니다. 윈도우에서 마우스로 복사할 때는 “덮어쓰시겠습니까?”라고 친절하게 물어보지만, 파이썬은 안전을 위해 멈춰버리는 것이 기본 설정이기 때문입니다.
이런 실무적인 맹점을 해결하려면, 위 코드의 shutil.move 부분에 “만약 똑같은 이름이 있다면 파일명 뒤에 오늘 날짜나 숫자를 붙여서 이동해라”라는 조건문을 살짝 덧붙여 주는 것이 좋습니다. 파일 시스템 제어와 관련된 더 깊이 있는 문법(이동, 복사, 강제 삭제 등)이 궁금하시다면, 공식 메뉴얼인 [파이썬 shutil 라이브러리 가이드]를 참고하시면 훌륭한 인사이트를 얻으실 수 있습니다.
글을 맺으며: 진정한 스마트워크는 환경 정리부터
장인이 도구를 탓하지 않는다고 하지만, 훌륭한 결과물은 언제나 정돈된 작업 환경에서 나옵니다.
마우스로 수십 번 드래그 앤 드롭을 해야 끝날 지루한 파일 정리 작업을 단 한 줄의 파이썬 실행으로 끝내버리십시오. 이렇게 아낀 10분의 시간과 맑아진 눈으로 우리는 거래처와의 중요한 미팅 준비나 핵심 기획서 작성에 더욱 집중할 수 있습니다.
만약 이 파일 정리 스크립트를 매주 금요일 오후 5시 반마다 내 손을 대지 않아도 컴퓨터가 알아서 실행하게 만들고 싶으시다면, 제가 이전에 연재했던 [파이썬 작업 스케줄러로 100% 무인 자동화 완성] 편을 반드시 정독하고 연결하여 세팅해 보시기를 강력히 추천합니다. 내 PC 안에 완벽한 디지털 비서를 고용하는 신세계를 맛보실 수 있을 것입니다.
오늘도 쏟아지는 서류와 파일 속에서 고군분투하시는 40대 실무자 여러분의 깔끔한 바탕화면과 정시 퇴근을 응원합니다.
