本文共 2152 字,大约阅读时间需要 7 分钟。
当想将照片序列合成延时摄影视频时,可能会发现照片中缺少一张,或照片序列是跨时间、并不连续的,如图1所示,但PR中只有连续的照片序列才能导入。
getAs soon as possible
这时往往需要将照片按照修改时间重命名,下面写了一个很简单的python脚本,理论上来说支持10000张照片以内的照片序列重命名,操作如下:
1.将照片备份(没有undo机制,以免脚本失误无法撤销)
2.将rename.exe文件放入照片文件中,双击即可重命名(不可更改名字)。如果安装过python,也可以直接双击脚本文件。
Remarks: 如果想按照其他时间进行排序:
import osdef reNameByTime(SRC_PATH): # 读取文件列表 files = os.listdir(SRC_PATH) # 确定排序依据(可以选择按照修改时间、创建时间或其他时间) for i in range(len(files)): # 读取文件修改时间 mod_time = os.path.getmtime(SRC_PATH + files[i]) # 根据不同时间类型排序(例如:getatime,getctime,getmtime等) if condition: # 选择所需时间类型后,可以将mod_time进行排序 sorted_files[i] = files[i] # 去除空格 # 无文件名重复或其他特殊情况 if not sorted_files: print("文件为空或格式不符") return # 开始重命名 for i in range(len(sorted_files)): old_name = sorted_files[i] new_prefix = "0001" if (i+1) < 10 else "00"+str((i+1)//100+1) if (i+1) <1000 else str((i+1)//1000)+str((i+1)%1000+1) new_name = new_prefix + old_name os.rename(os.path.join(SRC_PATH, old_name), os.path.join(SRC_PATH, new_name)) print("重命名完成,文件已移到指定新目录。注意:备份操作已进行,且新文件路径已自动更新。如有疑问,请检查脚本输出或联系技术支持。如需修改排序依据或文件类型,请参考脚本注释详细说明。") import osdef reNameByTime(path): mlist = [] for filename in os.listdir(path): try: modifytimes = os.path.getmtime(path + filename) filename_lower = filename.lower() if ".jpg" in filename_lower: mlist.append((modifytimes, int(modifytimes), filename)) except: pass # 去除重复文件 mlist = list(dict.fromkeys(mlist)) # 根据修改时间排序,默认按时间倒序 mlist.sort(reverse=True) # 重命名 for i in range(len(mlist)): modtime, seq, oldname = mlist[i] newname = f"{int(modtime):08d}-{seq}{os.path.splitext(oldname)[1]}" os.rename(path + oldname, path + newname) print("重命名完成。注意:备份操作已进行,且新文件路径已自动更新。如有疑问,请检查脚本输出或联系技术支持。如需修改排序依据或文件类型,请参考脚本注释详细说明。")if __name__ == "__main__": filepath = os.path.dirname(os.path.abspath(__file__)) reNameByTime(filepath) https://pan.baidu.com/s/1LagM8NDw7PT4nkxWAkJLZw 提取码:9cps
转载地址:http://naamz.baihongyu.com/