파이썬으로 파일 이름 변경, 폴더 정리, 텍스트 검색, 엑셀 처리 같은 반복 작업을 자동화하는 초보자용 예제를 정리합니다.
파이썬 반복 작업 자동화는 사람이 매번 손으로 하던 파일 정리, 텍스트 검색, 엑셀 처리 같은 일을 코드로 처리하는 방법입니다. 복잡한 프로그램을 만들지 않아도, 작은 스크립트 하나만으로 반복 업무를 줄일 수 있습니다.
파이썬을 처음 배울 때는 변수, 조건문, 반복문 같은 문법이 따로 떨어져 보일 수 있습니다. 하지만 자동화 예제를 보면 이런 문법을 왜 배우는지 조금 더 쉽게 이해할 수 있습니다.
반복 작업 자동화는 파이썬을 실생활이나 업무에 적용하기 좋은 첫 단계입니다.
파이썬 자동화란?
파이썬 자동화는 일정한 규칙이 있는 반복 작업을 코드로 처리하는 것을 말합니다.
예를 들어 이런 작업이 있습니다.
- 파일 이름을 일정한 규칙으로 한 번에 바꾸기
- 폴더 안의 파일을 확장자별로 분류하기
- 여러 텍스트 파일에서 특정 단어 찾기
- 엑셀 파일의 데이터를 읽고 조건에 맞게 정리하기
- 반복적으로 생성해야 하는 문서나 로그 만들기
핵심은 단순합니다.
사람이 반복해서 하는 일을 파이썬이 대신 반복하게 만드는 것입니다.
파이썬의 for, if, pathlib, shutil, openpyxl 같은 기능을 조합하면 초보자도 간단한 자동화 코드를 만들 수 있습니다.
반복 작업 자동화가 필요한 상황
어떤 작업을 자동화하면 좋을지 모르겠다면, 아래 기준에 해당하는지 먼저 확인해보세요.
1. 같은 작업을 여러 번 반복한다
파일 100개의 이름을 하나씩 바꾸거나, 매번 같은 형식의 파일을 정리하는 작업이 여기에 해당합니다.
2. 작업 규칙이 명확하다
예를 들어 .jpg 파일은 이미지 폴더로, .pdf 파일은 문서 폴더로 옮기는 식입니다.
규칙이 명확할수록 코드로 자동화하기 쉽습니다.
3. 단순하지만 실수하기 쉽다
반복 작업은 지루하고, 지루한 작업일수록 실수가 생기기 쉽습니다.
이런 작업은 사람이 계속 처리하기보다 코드로 일정하게 처리하는 편이 더 안전할 수 있습니다.
예시 1: 여러 파일 이름 한 번에 바꾸기
가장 흔한 자동화 예시는 파일 이름 변경입니다.
예를 들어 폴더 안에 있는 이미지 파일 이름을 아래처럼 바꾸고 싶다고 가정해보겠습니다.
IMG_001.jpg -> photo_1.jpg
IMG_002.jpg -> photo_2.jpg
IMG_003.jpg -> photo_3.jpg
파이썬의 pathlib 모듈을 사용하면 몇 줄로 처리할 수 있습니다.
from pathlib import Path
# 작업할 폴더 지정
folder = Path("images")
# glob() 결과 순서는 고정되지 않을 수 있으므로 이름순으로 정렬합니다.
for index, file in enumerate(sorted(folder.glob("*.jpg")), start=1):
# 새 파일 이름 규칙: photo_1.jpg, photo_2.jpg, ...
new_name = folder / f"photo_{index}.jpg"
# 같은 이름의 파일이 이미 있으면 덮어쓰기나 오류를 피하기 위해 건너뜁니다.
if new_name.exists():
print(f"건너뜀: {new_name.name} 파일이 이미 있습니다.")
continue
file.rename(new_name)
이 코드는 images 폴더 안에 있는 .jpg 파일을 찾아서 이름순으로 정렬한 뒤, 순서대로 새 이름을 붙입니다.
여기서 중요한 부분은 sorted(), for 반복문, enumerate()입니다.
for index, file in enumerate(sorted(folder.glob("*.jpg")), start=1):
folder.glob("*.jpg")는 폴더 안의 jpg 파일을 찾고, sorted()는 그 결과를 이름 기준으로 정렬합니다. enumerate()는 파일마다 번호를 붙여줍니다.
파일이 3개든 300개든 같은 방식으로 처리할 수 있습니다.
주의: 파일 이름 변경 코드는 되돌리기 번거로울 수 있습니다. 처음에는 반드시 복사본 폴더에서 테스트해보세요.
예시 2: 폴더 안의 파일을 확장자별로 정리하기
다운로드 폴더에는 여러 종류의 파일이 섞이기 쉽습니다.
report.pdf
photo.jpg
memo.txt
data.xlsx
이런 파일을 확장자별 폴더로 자동 정리할 수 있습니다.
from pathlib import Path
import shutil
folder = Path("downloads")
for file in folder.iterdir():
if file.is_file():
# 확장자 추출: .pdf -> pdf
extension = file.suffix.lower().replace(".", "")
if extension:
# 확장자 이름의 폴더가 없으면 생성
target_folder = folder / extension
target_folder.mkdir(exist_ok=True)
# 파일 이동
shutil.move(str(file), str(target_folder / file.name))
이 코드는 파일 확장자를 기준으로 폴더를 만들고, 해당 파일을 그 폴더로 이동합니다.
예를 들어 report.pdf는 pdf 폴더로, photo.jpg는 jpg 폴더로 이동합니다.
실행 후 구조는 대략 이렇게 됩니다.
downloads/
├── pdf/
│ └── report.pdf
├── jpg/
│ └── photo.jpg
├── txt/
│ └── memo.txt
└── xlsx/
└── data.xlsx
이런 자동화는 다운로드 폴더, 이미지 폴더, 문서 폴더를 정리할 때 유용합니다.
다만 실제 파일을 이동하는 코드이기 때문에 처음에는 테스트용 폴더에서 실행하는 것이 안전합니다.
또한 대상 폴더에 이미 같은 이름의 파일이 있다면 환경에 따라 오류가 발생하거나 의도와 다르게 처리될 수 있습니다. 중요한 파일이 있는 폴더에서는 실행 전에 백업을 만들어두는 편이 좋습니다.
예시 3: 텍스트 파일에서 특정 단어 찾기
여러 텍스트 파일에서 특정 단어가 들어간 파일을 찾는 작업도 자동화할 수 있습니다.
예를 들어 logs 폴더 안의 .txt 파일에서 error라는 단어를 찾는 코드입니다.
from pathlib import Path
folder = Path("logs")
keyword = "error"
for file in folder.glob("*.txt"):
content = file.read_text(encoding="utf-8")
if keyword in content:
print(f"{file.name} 파일에 '{keyword}' 단어가 있습니다.")
이 코드는 logs 폴더 안의 텍스트 파일을 하나씩 읽고, 특정 단어가 포함되어 있는지 확인합니다.
로그 파일, 메모 파일, 문서 초안 등을 검색할 때 활용할 수 있습니다.
예를 들어 여러 로그 파일에서 에러 메시지를 찾아야 한다면 사람이 하나씩 열어보는 것보다 빠르게 확인할 수 있습니다.
예시 4: 엑셀 파일 읽어서 데이터 필터링하기
업무 자동화에서 자주 나오는 것이 엑셀 처리입니다.
파이썬에서는 openpyxl 라이브러리를 사용하면 엑셀 파일을 읽고 수정할 수 있습니다.
openpyxl은 파이썬 표준 라이브러리가 아니라 외부 패키지입니다. 먼저 설치가 필요합니다.
pip install openpyxl
예를 들어 sales.xlsx 파일에 아래와 같은 데이터가 있다고 가정해보겠습니다.
| 상품명 | 판매금액 |
|---|---|
| 키보드 | 50000 |
| 마우스 | 30000 |
| 모니터 | 200000 |
이 데이터에서 판매금액이 100,000원 이상인 항목만 출력해보겠습니다.
from openpyxl import load_workbook
# 엑셀 파일 불러오기
workbook = load_workbook("sales.xlsx")
sheet = workbook.active
# 두 번째 줄부터 데이터 읽기
# 첫 번째 줄은 제목 행이라고 가정
for row in sheet.iter_rows(min_row=2, values_only=True):
name = row[0]
amount = row[1]
if amount >= 100000:
print(f"{name}: {amount}원")
실행 결과는 다음과 비슷하게 나옵니다.
모니터: 200000원
이 코드는 엑셀 파일의 두 번째 줄부터 데이터를 읽고, 판매금액이 100,000원 이상인 항목만 출력합니다.
엑셀 자동화는 조금만 익숙해져도 반복 업무에 바로 활용하기 좋습니다.
팁: 코드를 실행하기 전에 대상 엑셀 파일을 닫아두는 것이 좋습니다. 파일이 열려 있으면 환경에 따라 PermissionError가 발생할 수 있습니다.
자동화 코드를 작성할 때 주의할 점
파이썬 자동화는 편리하지만, 파일을 수정하거나 이동하는 작업에서는 주의가 필요합니다.
코드는 사람이 직접 클릭하는 것보다 훨씬 빠르게 여러 파일을 처리합니다. 그래서 작은 실수도 여러 파일에 한꺼번에 반영될 수 있습니다.
다음 내용은 자동화 코드를 실행하기 전에 꼭 확인하는 것이 좋습니다.
1. 처음에는 테스트 폴더에서 실행하기
파일 이름 변경, 이동, 삭제 코드는 실제 자료에 바로 실행하지 않는 것이 좋습니다.
먼저 복사본이나 테스트 폴더를 만들어서 코드가 원하는 대로 동작하는지 확인해야 합니다.
권장하지 않음: 원본 폴더에서 바로 실행
권장: 복사한 테스트 폴더에서 먼저 실행
이 습관만 있어도 실수로 중요한 파일을 잃을 가능성을 줄일 수 있습니다.
2. 삭제보다 이동을 먼저 사용하기
초보자라면 delete, unlink 같은 삭제 기능보다 이동 기능을 먼저 사용하는 편이 안전합니다.
파일을 지우는 대신 backup 폴더나 trash 폴더로 옮기면 문제가 생겼을 때 되돌리기 쉽습니다.
import shutil
from pathlib import Path
file = Path("sample.txt")
backup_folder = Path("backup")
backup_folder.mkdir(exist_ok=True)
shutil.move(str(file), str(backup_folder / file.name))
자동화 코드는 빠르게 실행되기 때문에, 한 번 잘못 실행하면 여러 파일이 동시에 변경될 수 있습니다.
삭제 작업은 충분히 테스트한 뒤 사용하는 것이 좋습니다.
3. 경로를 정확히 확인하기
자동화 코드에서 자주 발생하는 실수 중 하나가 경로 문제입니다.
from pathlib import Path
# 이 경로는 현재 작업 디렉터리(cwd)를 기준으로 해석됩니다.
folder = Path("downloads")
print("현재 작업 디렉터리 기준:", folder.resolve())
# 현재 파이썬 파일이 있는 위치를 기준으로 삼고 싶다면 이렇게 씁니다.
script_folder = Path(__file__).parent
download_folder = script_folder / "downloads"
print("스크립트 파일 기준:", download_folder.resolve())
Path("downloads")는 현재 작업 디렉터리를 기준으로 찾습니다. 반대로 Path(__file__).parent / "downloads"는 현재 파이썬 파일이 있는 폴더를 기준으로 경로를 만듭니다.
파일 자동화 작업 전에는 어떤 기준 경로를 쓰고 있는지 먼저 출력해보는 습관이 좋습니다.
처음에는 작은 작업부터 자동화하기
파이썬 자동화를 처음 배울 때부터 큰 프로그램을 만들 필요는 없습니다.
오히려 작은 작업부터 시작하는 것이 좋습니다.
예를 들어 다음 정도면 충분합니다.
- 파일 이름 앞에 날짜 붙이기
- 특정 확장자 파일만 목록으로 출력하기
- 텍스트 파일에서 특정 단어 찾기
- 엑셀에서 특정 조건의 행만 출력하기
- 반복적으로 작성하는 문장 자동 생성하기
중요한 것은 “이 작업을 사람이 반복하고 있는가?”를 생각해보는 것입니다.
반복되는 규칙이 있다면 파이썬으로 자동화할 가능성이 있습니다.
마무리
파이썬으로 반복 작업을 자동화하면 파일 정리, 텍스트 검색, 엑셀 처리 같은 단순 작업을 줄일 수 있습니다.
파일을 하나씩 정리하거나, 문서를 일일이 열어 확인하거나, 엑셀 데이터를 반복해서 검사하는 작업은 실수하기 쉽습니다. 이런 작업을 코드로 처리하면 더 빠르고 일정한 결과를 얻을 수 있습니다.
처음에는 파일 이름 바꾸기처럼 작은 예제부터 시작하는 것이 좋습니다.
그다음 폴더 정리, 텍스트 검색, 엑셀 처리처럼 조금씩 범위를 넓혀가면 파이썬을 실제 작업에 활용하는 감각을 익힐 수 있습니다.
'개발 > python' 카테고리의 다른 글
| 파이썬 openpyxl 엑셀 자동화 기초: 파일 만들기부터 수정까지 (0) | 2026.06.02 |
|---|---|
| 파이썬 모듈과 패키지: import로 코드를 나누고 재사용하는 방법 (0) | 2026.05.22 |
| 파이썬 파일 입출력: 텍스트 파일 읽고 쓰는 기본 방법 (0) | 2026.05.22 |
| 파이썬 예외 처리: 오류가 나도 프로그램이 멈추지 않게 하는 방법 (0) | 2026.05.22 |
| 파이썬 함수: 반복되는 코드를 줄이고 재사용하는 방법 (0) | 2026.05.22 |