파이썬에서 파일 이름을 변경하는 가장 기본적인 방법은 표준 라이브러리인 os 모듈의 rename() 함수를 사용하는 것입니다. 예를 들어, 현재 디렉터리에 있는 a.txt 파일의 이름을 b.txt로 바꾸고 싶다면 다음과 같이 작성합니다.
>>> import os
>>> os.rename('a.txt', 'b.txt')
shutil 모듈로 파일 이름 변경하기
shutil(shell utilities) 모듈을 활용할 수도 있습니다. shutil.move(source, destination)를 호출하면 source 경로에 있는 파일이나 폴더를 destination 경로로 이동시키며, 새 위치의 절대 경로를 문자열로 반환합니다. 사실상 이름 변경과 이동이 동시에 처리되는 방식입니다.
예제 코드
>>> import shutil
>>> shutil.move('a.txt', 'b.txt')
다른 디렉터리 간 파일 이동 및 이름 변경
파일과 대상 경로가 서로 다른 디렉터리에 있다면, 두 방법 모두 절대 경로(또는 상대 경로)를 명확하게 지정해 주어야 합니다.
>>> os.rename('/home/user/docs/a.txt', '/home/user/backup/b.txt')
>>> shutil.move('/home/user/docs/a.txt', '/home/user/backup/b.txt')주의사항 및 팁
- Windows 환경: os.rename()은 대상 파일이 이미 존재하면 FileExistsError를 발생시킵니다. 기존 파일을 덮어쓰려면 os.replace()를 사용하는 것이 안전합니다.
- macOS/Linux 환경: 대상 파일이 이미 있으면 자동으로 덮어씁니다.
- pathlib 활용: 파이썬 3.4 이상에서는 객체 지향 방식의 Path.rename()도 사용할 수 있습니다.
>>> from pathlib import Path
>>> Path('a.txt').rename('b.txt')
간단한 이름 변경에는 os.rename(), 파일 이동까지 겸해야 하는 경우에는 shutil.move()를 사용하는 것이 일반적이며, 최신 스타일의 코드를 선호한다면 pathlib를 선택하는 것도 좋은 방법입니다.