重命名操作是我们开发中经常遇到的一个需求,下面这篇文章主要给大家介绍了关于Python如何根据照片修改时间重命名并排序的相关资料,需要的朋友可以参考下
一、Background
当想将照片序列合成延时摄影视频时,可能会发现照片中缺少一张,或者照片序列是跨时间、并不连续的,如图1所示,但PR中只有连续的照片序列才能导入。
图1 时间不连续序列
二、Method
来源gaodai^.ma#com搞#代!码网
这时往往需要将照片按照修改时间重命名,下面写了一个很简单的python脚本,理论上来说支持10000张照片以内的照片序列重命名,操作如下:
1.将照片备份(没有undo机制,以免脚本失误无法撤销)
2.将rename.exe文件放入照片文件中,双击即可重命名(不可更改名字)。如果安装过python,也可以直接双击脚本文件。
图2 操作演示
三、Code
import os def reNameByTime(path): mlist = [] # 获取文件名列表 files = os.listdir(path) # 获得名称带时间戳的新文件名列表 for filename in files: # 获得文件的最后修改时间 modifytimes = os.path.getmtime(path + filename) filename_lower = filename.lower() # 筛选.jpg-600格式 if ".jpg-600" in filename_lower: mlist.append(str(int(modifytimes)) + "-" + filename) # .jpg-600 mlist = sorted(mlist) # 遍历修改时间戳为序号 for i in range(len(mlist)): # 截取获得原先的文件名 oldname = mlist[i][11:] # 切片操作,从11至后 # 将时间戳部分修改为序号,得到新的文件名 if (i + 1) 9 and (i + 1) 99 and (i + 1) <1000: # 100-1000 newname="0" + str(i 1) ".jpg-600" else: 1000 - 9999 print(newname, oldname) 重命名文件,按修改时间排序并加序号前缀 os.rename(path oldname, path newname) #如果想执行py文件,可以将后缀改为“.py”,如果想打包成exe,需要将后缀改为“.exe” if __name__== "__main__": filepath=os.sys.argv[0].replace("rename.py", "") print(os.sys.argv[0]) renamebytime(filepath)<pre></div><p>如果想按照其他时间进行排序:</p><div class="gaodaimacode"><pre class="prettyprint linenums"> # os.path.getatime(file) 输出文件访问时间 # os.path.getctime(file) 输出文件的创建时间 # os.path.getmtime(file) 输出文件最近修改时间
如果想对其他类型的文件进行排序,更改对应后缀名即可。
总结
到此这篇关于Python如何根据照片修改时间重命名并排序的文章就介绍到这了,更多相关Python重命名并排序内容请搜索gaodaima搞代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持gaodaima搞代码网!
以上就是Python如何根据照片修改时间重命名并排序详解的详细内容,更多请关注gaodaima搞代码网其它相关文章!