Python如何根据照片修改时间重命名并排序详解

作者:青简 时间:2021-06-27 02:58:31 

一、Background

当想将照片序列合成延时摄影视频时,可能会发现照片中缺少一张,或者照片序列是跨时间、并不连续的,如图1所示,但PR中只有连续的照片序列才能导入。                                                          

Python如何根据照片修改时间重命名并排序详解

图1  时间不连续序列

二、Method

这时往往需要将照片按照修改时间重命名,下面写了一个很简单的python脚本,理论上来说支持10000张照片以内的照片序列重命名,操作如下:

1.将照片备份(没有undo机制,以免脚本失误无法撤销)

2.将rename.exe文件放入照片文件中,双击即可重命名(不可更改名字)。如果安装过python,也可以直接双击脚本文件。

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格式
       if ".jpg" in filename_lower:
           mlist.append(str(int(modifytimes)) + "-" + filename)   # .jpg

mlist = sorted(mlist)

# 遍历修改时间戳为序号
   for i in range(len(mlist)):

# 截取获得原先的文件名
       oldname = mlist[i][11:]     # 切片操作,从11至后

# 将时间戳部分修改为序号,得到新的文件名
       if (i + 1) < 10:     # 0-9
           newname = "000" + str(i + 1) + ".jpg"
       elif (i + 1) > 9 and (i + 1) < 100:   # 10-100
           newname = "00" + str(i + 1) + ".jpg"
       elif (i + 1) > 99 and (i + 1) < 1000:   # 100-1000
           newname = "0" + str(i + 1) + ".jpg"
       else:
           newname = str(i + 1) + ".jpg"    # 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)

如果想按照其他时间进行排序:


#   os.path.getatime(file) 输出文件访问时间
#   os.path.getctime(file) 输出文件的创建时间
#   os.path.getmtime(file) 输出文件最近修改时间

如果想对其他类型的文件进行排序,更改对应后缀名即可。

总结

来源:https://blog.csdn.net/weixin_41425047/article/details/116809926

标签:python,重命名,排序
0
投稿

猜你喜欢

  • SQL Server数据库涉及到的数据仓库概念

    2009-01-15 12:58:00
  • python中torch.nn.identity()方法详解

    2021-05-21 16:51:01
  • python简单分割文件的方法

    2021-08-09 10:32:33
  • 总结Python编程中函数的使用要点

    2021-03-15 01:49:52
  • 两段不错的JS文字特效

    2007-09-27 12:52:00
  • 如何检测Oracle的ODBC是否连接成功?

    2009-11-24 20:31:00
  • Django MTV和MVC的区别详解

    2023-06-08 10:15:19
  • 分享Pycharm中一些不为人知的技巧

    2023-10-04 04:52:54
  • 用Python实现读写锁的示例代码

    2022-09-19 13:51:01
  • 装载iframe 子页面,自适应高度

    2008-11-20 12:53:00
  • 网页制作前台之javascript

    2013-07-23 08:32:59
  • Python实现账号密码输错三次即锁定功能简单示例

    2023-07-22 07:40:21
  • Python OpenCV阈值处理详解

    2023-10-07 19:38:47
  • python实现csv格式文件转为asc格式文件的方法

    2021-10-12 19:10:37
  • Python爬虫抓取手机APP的传输数据

    2021-10-04 03:26:51
  • windows 下python+numpy安装实用教程

    2022-06-26 09:52:26
  • 基于python实现文件加密功能

    2022-02-02 20:28:57
  • 查看python下OpenCV版本的方法

    2022-12-24 18:15:32
  • asp 小偷采集程序原理与常用函数方法

    2011-03-06 10:36:00
  • python实现定时压缩指定文件夹发送邮件

    2022-06-02 19:32:36
  • asp之家 网络编程 m.aspxhome.com