PDF文件名字符替换:保留.pdf后缀点的实现方法求助
解决PDF文件名替换时保留后缀点的问题
直接把.加入替换列表会连.pdf里的点一起换掉,要避免这个问题,核心是把文件名主体和后缀分开处理:只替换文件名部分的点,保留后缀里的点。
修改后的代码示例
import os # 示例文件列表,实际场景可通过os.listdir()或glob获取目标文件 files = ["The Sample, File - With.Multiple.Dots.pdf", "Another.Test-File.pdf"] for file in files: # 拆分文件名与后缀:比如"The File.pdf"会拆成("The File", ".pdf") name_part, ext_part = os.path.splitext(file) # 定义需要替换的字符,现在可以放心加入"." replace_items = [",", "-", "The ", " ", "."] # 仅对文件名主体执行替换操作 edited_name = name_part for item in replace_items: edited_name = edited_name.replace(item, "") # 拼接处理后的完整文件名 new_file = f"{edited_name}{ext_part}" # 执行重命名(实际使用时取消注释,注意文件路径正确性) # os.rename(file, new_file) print(new_file) # 测试输出:SampleFileWithMultipleDots.pdf、AnotherTestFile.pdf
关键说明
os.path.splitext()会自动以文件名中最后一个点作为分隔符,刚好适配PDF这类单后缀文件,不会误拆分文件名中间的点- 所有替换操作仅作用于
name_part,完全不会影响后缀里的.pdf - 如果处理的是带路径的文件(比如
./docs/Target File.pdf),该方法依然有效,splitext会正确保留路径部分
内容的提问来源于stack exchange,提问作者xxgaryxx
相关产品推荐
相关产品推荐

