Đổi extension = tách root + extension mới. Dùng os.path.splitext + os.rename.
Ví dụ
import os my_file = 'my_file.txt' base = os.path.splitext(my_file)[0] # 'my_file' os.rename(my_file, base + '.bin') # my_file.txt → my_file.bin
Hàm tiện ích
def change_ext(filepath, new_ext):
'''new_ext bao gồm dấu chấm, ví dụ: '.bin' '''
base = os.path.splitext(filepath)[0]
new_path = base + new_ext
os.rename(filepath, new_path)
return new_path
change_ext('data.csv', '.json') # data.csv → data.json
pathlib (Python 3.4+)
from pathlib import Path
p = Path('my_file.txt')
p.rename(p.with_suffix('.bin')) # my_file.txt → my_file.bin
Lưu ý: with_suffix() thay thế toàn bộ suffix (kể cả .tar.gz → .bin). Dùng p.with_name(p.stem + '.bin') nếu chỉ muốn thay phần cuối.