如何用Python批量移除图片文件名中的指定部分?
使用Python批量移除文件名中的特定部分
当然可以用Python实现这个需求,你想到的os.rename方法完全适用,结合字符串处理就能批量完成文件名修改。
实现步骤与代码示例
下面是针对你的场景(移除文件名中的IM00部分,保留剩余内容)的完整代码:
import os # 替换为你的目标文件夹路径,支持相对或绝对路径 folder_path = "./image_folder" # 要从文件名中移除的特定字符串 target_substring = "IM00" # 遍历文件夹内的所有文件 for filename in os.listdir(folder_path): # 仅处理.jpg格式的图片文件 if filename.lower().endswith(".jpg"): # 拆分文件名主体和扩展名 file_base, file_ext = os.path.splitext(filename) # 移除目标字符串 new_file_base = file_base.replace(target_substring, "") # 拼接新的文件名 new_filename = new_file_base + file_ext # 构造文件的完整路径(避免路径问题) old_full_path = os.path.join(folder_path, filename) new_full_path = os.path.join(folder_path, new_filename) # 执行重命名操作 os.rename(old_full_path, new_full_path) # 可选:打印日志,确认重命名结果 print(f"已重命名:{filename} → {new_filename}")
关键注意事项
- 路径验证:确保
folder_path是正确的文件夹路径,推荐使用绝对路径(比如C:/Users/xxx/images)避免相对路径带来的问题 - 预验证:可以先注释掉
os.rename这一行,运行程序打印所有新文件名,确认符合预期后再执行实际重命名 - 重名处理:如果移除目标字符串后出现重名文件(例如
IM001.jpg和IM0001.jpg处理后都变成1.jpg),os.rename会抛出异常,这种情况可以添加逻辑给重复文件名加后缀(比如1_1.jpg)
内容的提问来源于stack exchange,提问作者Keithx
相关产品推荐
相关产品推荐

