파일의 확장자를 변경한다는 것은 본질적으로 파일 이름을 다시 지정하면서 확장자 부분만 새로운 값으로 교체하는 작업입니다. 이를 위해서는 파일명을 마침표(.)를 기준으로 분리한 뒤, 마지막 요소인 확장자를 원하는 새 확장자로 바꿔주면 됩니다. Python에서는 os.rename 메서드를 사용해 간단하게 처리할 수 있습니다.
예제
>>> import os
>>> my_file = 'my_file.txt'
>>> base = os.path.splitext(my_file)[0]
>>> os.rename(my_file, base + '.bin')
위 코드는 os.path.splitext로 파일명에서 확장자를 제외한 기본 이름(base)을 추출한 후, 여기에 새 확장자 '.bin'을 붙여 os.rename으로 파일명을 변경합니다. 그 결과 my_file.txt가 my_file.bin으로 변경됩니다.
pathlib 모듈을 활용한 방법
Python 3.4 이상에서는 더욱 직관적인 pathlib 모듈을 사용할 수도 있습니다. with_suffix() 메서드를 이용하면 확장자 교체가 한 줄로 가능합니다.
>>> from pathlib import Path
>>> p = Path('my_file.txt')
>>> p.rename(p.with_suffix('.bin'))
두 방법 모두 결과는 동일하지만, pathlib는 객체 지향적인 방식으로 경로를 다루기 때문에 가독성이 좋고 유지보수에도 유리합니다. 상황에 맞는 방식을 선택해 사용하시면 됩니다.