在Win10右键菜单中用Python批量重命名Lightroom导出文件
解决方案
一、修改Python脚本:直接处理重命名并适配当前目录
放弃生成批处理的思路,直接用Python遍历目标目录的文件,匹配*-N.ext格式的文件名,将序号补零到指定位数(默认3位,适配100+文件场景)。核心是让脚本接收右键菜单传递的当前目录路径:
import os import re def rename_files(target_dir): # 需处理的文件扩展名 ext_list = ['.arw', '.xmp'] # 匹配文件名格式:前缀-序号.后缀 filename_pattern = re.compile(r'(.*)-(\d+)(\.[a-zA-Z0-9]+)$') for filename in os.listdir(target_dir): file_full_path = os.path.join(target_dir, filename) if os.path.isfile(file_full_path): match_result = filename_pattern.match(filename) if match_result: prefix = match_result.group(1) raw_num = match_result.group(2) ext = match_result.group(3) # 仅处理指定扩展名的文件 if ext.lower() in [e.lower() for e in ext_list]: # 补零到3位,若需2位可改为zfill(2) padded_num = raw_num.zfill(3) new_filename = f"{prefix}-{padded_num}{ext}" new_file_full_path = os.path.join(target_dir, new_filename) # 避免覆盖已存在的文件 if not os.path.exists(new_file_full_path): os.rename(file_full_path, new_file_full_path) if __name__ == "__main__": import sys # 接收右键菜单传递的当前目录参数 if len(sys.argv) > 1: target_directory = sys.argv[1] rename_files(target_directory)
二、配置右键菜单:传递当前目录参数
让右键点击文件夹空白处时能触发脚本,需手动修改注册表:
- 按
Win+R输入regedit打开注册表编辑器 - 定位到
HKEY_CLASSES_ROOT\Directory\Background\shell - 右键
shell→新建→项,命名为照片序号补零(可自定义名称) - 在该新项内,右键→新建→字符串值,命名为
Icon,值设为Python图标路径(例:C:\Python39\python.exe,0) - 右键上述新项→新建→项,命名为
command - 双击
command的默认值,填入:
替换为实际的Python安装路径和脚本路径,"C:\Python39\python.exe" "C:\你的脚本存放路径\rename_photos.py" "%V"%V是系统自动传递的当前右键点击目录路径
三、注意事项
- 脚本会自动识别所有
前缀-数字.后缀格式的文件,将数字补零到指定位数 - 执行前建议备份文件,避免意外覆盖
- 若仅需补零到2位,修改脚本中
padded_num = raw_num.zfill(3)为zfill(2)即可
内容的提问来源于stack exchange,提问作者RTShields
相关产品推荐
相关产品推荐

