파이썬(Python)에서 파일이나 디렉터리의 이름을 변경할 때는 os 모듈의 rename() 메서드를 사용합니다. 이 메서드를 활용하면 반복문과 함께 여러 개의 파일 이름을 한 번에 손쉽게 변경할 수 있습니다.
os.rename() 기본 문법
os.rename(src, dst)
첫 번째 인자인 src는 이름을 변경할 원본 파일(또는 디렉터리)의 경로를, 두 번째 인자인 dst는 새로운 이름이 적용될 대상 경로를 의미합니다. 즉, 기존 경로의 파일을 새 이름의 경로로 옮기는 방식으로 이름이 변경됩니다.
예제 시나리오
예를 들어, 이미지 파일들이 담겨 있는 하나의 폴더가 있다고 가정해 보겠습니다. 아래와 같은 폴더 안에는 이름이 제각각인 여러 장의 사진이 들어 있습니다.
입력 예시

예제 코드
아래 코드는 지정한 경로 내의 모든 파일을 순회하면서 soul0.jpg, soul1.jpg처럼 일련번호가 붙은 새로운 이름으로 일괄 변경하는 예제입니다.
import os
# 여러 파일의 이름을 변경하는 함수
def main():
i = 0
path = "C:/Users/TP/Desktop/sample/Travel/west bengal/bishnupur/"
for filename in os.listdir(path):
my_dest = "soul" + str(i) + ".jpg"
my_source = path + filename
my_dest = path + my_dest
# rename() 함수가 모든 파일의 이름을 변경합니다.
os.rename(my_source, my_dest)
i += 1
# 드라이버 코드
if __name__ == '__main__':
# main() 함수 호출
main()코드 설명
- os.listdir(path): 지정한 디렉터리 안의 모든 파일과 폴더 목록을 반환합니다.
- my_dest: soul이라는 접두어와 순번 i를 조합해 새 파일 이름을 생성합니다.
- os.rename(my_source, my_dest): 원본 파일을 새 이름으로 변경합니다.
- i += 1: 파일 하나를 처리할 때마다 순번을 1씩 증가시켜 중복되지 않도록 합니다.
실행 결과
스크립트 실행 후 폴더를 확인하면, 모든 이미지 파일이 아래와 같이 규칙적인 이름으로 변경된 것을 볼 수 있습니다.

주의 사항
- os.rename()은 대상 경로에 같은 이름의 파일이 이미 존재하는 경우 운영체제에 따라 기존 파일을 덮어쓰거나 오류를 발생시킬 수 있으므로, 실행 전에 백업을 권장합니다.
- Windows에서는 경로 구분자로 슬래시(/) 또는 이중 역슬래시(\\)를 사용해야 합니다.
- 확장자가 다른 파일이 섞여 있을 경우, filename.endswith(".jpg") 조건을 추가해 특정 형식의 파일만 변경하도록 필터링할 수 있습니다.