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

 更新时间:2021年05月16日 08:45:23   作者:青简  
重命名操作是我们开发中经常遇到的一个需求,下面这篇文章主要给大家介绍了关于Python如何根据照片修改时间重命名并排序的相关资料,需要的朋友可以参考下

一、Background

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

图1  时间不连续序列

二、Method

这时往往需要将照片按照修改时间重命名,下面写了一个很简单的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格式
        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) 输出文件最近修改时间

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

总结

到此这篇关于Python如何根据照片修改时间重命名并排序的文章就介绍到这了,更多相关Python重命名并排序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • tensorflow tf.train.batch之数据批量读取方式

    tensorflow tf.train.batch之数据批量读取方式

    今天小编就为大家分享一篇tensorflow tf.train.batch之数据批量读取方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • python 制作本地应用搜索工具

    python 制作本地应用搜索工具

    这篇文章主要介绍了python 制作本地应用搜索工具的方法,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-02-02
  • Python变量命名规范的总结

    Python变量命名规范的总结

    在Python编程中,变量命名规范对于编写优雅和可维护的代码至关重要,本文主要介绍了Python变量命名规范的总结,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 使用matlab或python将txt文件转为excel表格

    使用matlab或python将txt文件转为excel表格

    这篇文章主要介绍了matlab或python代码将txt文件转为excel表格,本文通过matlab代码和python 代码给大家详细介绍,需要的朋友可以参考下
    2019-11-11
  • Python实现功能完整的个人员管理程序

    Python实现功能完整的个人员管理程序

    这篇文章主要介绍了Python实现功能完整的个人员管理程序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-12-12
  • Python 工具类实现大文件断点续传功能详解

    Python 工具类实现大文件断点续传功能详解

    用python进行大文件下载的时候,一旦出现网络波动问题,导致文件下载到一半。如果将下载不完全的文件删掉,那么又需要从头开始,如果连续网络波动,是不是要头秃了。本文提供断点续传下载工具方法,希望可以帮助到你
    2021-10-10
  • Python 脚本死锁问题与解决方案

    Python 脚本死锁问题与解决方案

    在脚本中,可以创建一个队列来存储子进程的输出,然后由主进程从队列中读取输出并进行处理,这篇文章主要介绍了Python 脚本死锁问题与解决方案,需要的朋友可以参考下
    2024-06-06
  • Python的Django框架中消息通知的计数器实现教程

    Python的Django框架中消息通知的计数器实现教程

    通知的计数器非常有用,新通知时+1和读过通知后的-1是最基本的功能,这里我们就来看一下Python的Django框架中消息通知的计数器实现教程
    2016-06-06
  • 在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)

    在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)

    这篇文章主要介绍了在PyCharm中遇到pip安装失败问题及解决方案(pip失效时的解决方案),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • python基础之基本运算符

    python基础之基本运算符

    这篇文章主要介绍了python基本运算符,实例分析了Python中返回一个返回值与多个返回值的方法,需要的朋友可以参考下
    2021-10-10

最新评论