Python修改文件后缀名可通过os.rename()
或shutil.move()
实现,核心是分离文件名与扩展名后重组。 批量处理时推荐os.walk()
遍历目录,确保文件类型匹配避免损坏数据,代码简洁高效。
-
单文件修改:使用
os.rename("old.txt", "new.md")
直接替换后缀,需确保路径正确。若文件为二进制(如图片),需保持二进制模式操作防止编码错误。 -
批量修改:结合
os.listdir()
和endswith()
筛选目标文件,例如将目录下所有.txt
改为.csv
。代码示例:python复制
import os for filename in os.listdir("folder"): if filename.endswith(".txt"): os.rename(filename, filename[:-4] + ".csv")
-
递归处理子目录:通过
os.walk()
深度遍历,配合os.path.splitext()
分割扩展名,适用于多层文件夹结构。例如将.jpg
转为.png
:python复制
for root, _, files in os.walk("parent_folder"): for file in files: if file.endswith(".jpg"): new_name = os.path.splitext(file)[0] + ".png" os.rename(os.path.join(root, file), os.path.join(root, new_name))
-
异常处理:添加
try-except
捕获权限错误或路径异常,避免程序中断。例如处理文件名冲突时提示用户。 -
扩展工具:
pathlib
模块提供面向对象路径操作,代码更易读。例如:python复制
from pathlib import Path Path("file.txt").rename("file.md")
修改后缀名仅影响文件标识,实际内容需格式兼容。操作前建议备份数据,并验证修改后文件可正常打开。