Python中怎么给图片进行重命名,且做排序操作
Admin 2022-07-21 群英技术资讯 1361 次浏览
今天这篇给大家分享的知识是“Python中怎么给图片进行重命名,且做排序操作”,小编觉得挺不错的,对大家学习或是工作可能会有所帮助,对此分享发大家做个参考,希望这篇“Python中怎么给图片进行重命名,且做排序操作”文章能帮助大家解决问题。当想将照片序列合成延时摄影视频时,可能会发现照片中缺少一张,或者照片序列是跨时间、并不连续的,如图1所示,但PR中只有连续的照片序列才能导入。

图1 时间不连续序列
这时往往需要将照片按照修改时间重命名,下面写了一个很简单的python脚本,理论上来说支持10000张照片以内的照片序列重命名,操作如下:
1.将照片备份(没有undo机制,以免脚本失误无法撤销)
2.将rename.exe文件放入照片文件中,双击即可重命名(不可更改名字)。如果安装过python,也可以直接双击脚本文件。

图2 操作演示
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) 输出文件最近修改时间
如果想对其他类型的文件进行排序,更改对应后缀名即可。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本文主要介绍了Python中typing模块的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
这篇文章主要介绍了Python 的矩阵传播机制Broadcasting和矩阵运算,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
在C/C++语言中,struct被称为结构体。而在Python中,struct是一个专门的库,用于处理字节串与原生Python数据结构类型之间的转换。本篇,将详细介绍二进制数据结构struct的使用方式。
定义差集: A,B是两个集合,所有属于A且不属于B的元素构成的集合, 就是差集。交集: A,B是两个集合,既属于A又属于B的元素构成的集合
主动模式:客户端首先从任意的非特殊端口n(大于1023的端口,也是客户端的命令端口)连接FTP服务器的命令端口(默认是21),向服务器发出命令 PORT n+1,告诉服务器自己使用n+1端口作为数据端口进行数据传输,然后在n+1端口监听。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008