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重命名并排序内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python实现图片文件批量重命名

    本文实例为大家分享了python实现文件批量重命名的具体代码,供大家参考,具体内容如下 代码: # -*- coding:utf-8 -*- import os class ImageRename(): def __init__(self): self.path = 'D:/xpu/paper/plate_data' def rename(self): filelist = os.listdir(self.path) total_num = len(filelist) i = 0 for ite

  • 重命名批处理python脚本

    将Copy of ********.bmp或者Copy of Copy of ********.bmp 此类文件统一命名为********0.bmp 或者********00.bmp等格式,后面的0的个数代表********.bmp出现的次数+1.写了个下面的小脚本: 复制代码 代码如下: import os """ 这个程序是用来将文件名改名,因为在文件夹里面有很多Copy of 重文件名,因此去掉windows 重命名风格而换用新的累加命名机制 作者:chenxofHit

  • python对指定目录下文件进行批量重命名的方法

    本文实例讲述了python对指定目录下文件进行批量重命名的方法.分享给大家供大家参考.具体如下: 这段python代码可对c:\temp目录下的所有文件名为"scroll_1"文件替换为"scroll_00" import os path = 'c:\\temp' for file in os.listdir(path): if os.path.isfile(os.path.join(path,file))==True: newname = file.replace

  • 用python实现批量重命名文件的代码

    下面是最终代码 (windows下实现的) 复制代码 代码如下: # -*- coding: cp936 -*- import os path = 'D:\\图片\\' for file in os.listdir(path): if os.path.isfile(os.path.join(path,file))==True: if file.find('.')<0: newname=file+'rsfdjndk.jpg' os.rename(os.path.join(path,file),os

  • Python os.rename() 重命名目录和文件的示例

    概述 os.rename() 方法用于重命名文件或目录,从 src 到 dst,如果dst是一个存在的目录, 将抛出OSError. 语法 rename()方法语法格式如下: os.rename(src, dst) 参数 src – 要修改的目录名 dst – 修改后的目录名 返回值 该方法没有返回值 该方法 可以重命名 文件 和目录, 如果 src参数 对应文件或目录,不存在,会保错, 如果 dst 参数 对应文件或目录,已经存在,也会报错 实验方法: 在当前目录下,新建一个目录,名称为:te

  • python实现大量图片重命名

    本文实例为大家分享了python实现大量图片重命名的具体代码,供大家参考,具体内容如下 说明 在进行深度学习的过程中,需要对图片进行批量的命名处理,因此利用简单的python代码实现图片的命名格式处理 # -*- coding:utf8 -*- import os class BatchRename(): ''' 批量重命名文件夹中的图片文件 ''' def __init__(self): self.path = 'C:/Users/.../Data/Image' #表示需要命名处理的文件夹 d

  • Python 文件重命名工具代码

    复制代码 代码如下: #Filename:brn.py #Description: batch replace certain words in file names #Use to bat rename the file in a dir(modify the suffix from a to b) for Windows Vista OS import sys import os import fnmatch import re #parse params p=input("Please i

  • python实现批量文件重命名

    本文实例为大家分享了python批量文件重命名的具体代码,供大家参考,具体内容如下 问题描述 最近遇到朋友求助,如何将大量文件名前面的某些字符删除. 即将图中文件前的编号删除. Python实现 用到了python中的os模块,os模块中的rename方法可以实现对文件的重命名 import os #path为批量文件的文件夹的路径 path = 'd:\\renamefolder' #文件夹中所有文件的文件名 file_names = os.listdir(path) #外循环遍历所有文件名,

  • Python批量重命名同一文件夹下文件的方法

    本文实例讲述了Python批量重命名同一文件夹下文件的方法.分享给大家供大家参考.具体分析如下: 朋友发了一个文件夹过来,里面的图片都以 .tmp 为后缀. 手工修改的话工作量太大.故写了一个 Python 脚本进行批量重命名. 对 Python 的标准库不熟,只能边查资料,或者 help() 边写代码. 三行代码就可以解决这一问题. 不过没有捕获异常.不能迭代同一目录下的所有文件. 代码如下: import os for file in os.listdir("."): if os.

  • Python实现获取照片拍摄日期并重命名的方法

    本文实例讲述了Python实现获取照片拍摄日期并重命名的方法.分享给大家供大家参考,具体如下: python获取照片的拍摄日期并重命名.不支持重复处理的中断. 重命名为:拍摄日期__原文件名 import os import exifread def getExif(filename): FIELD = 'EXIF DateTimeOriginal' fd = open(filename, 'rb') tags = exifread.process_file(fd) fd.close() if

随机推荐