Python如何根據(jù)照片修改時間重命名并排序詳解
一、Background
當(dāng)想將照片序列合成延時攝影視頻時,可能會發(fā)現(xiàn)照片中缺少一張,或者照片序列是跨時間、并不連續(xù)的,如圖1所示,但PR中只有連續(xù)的照片序列才能導(dǎo)入。

圖1 時間不連續(xù)序列
二、Method
這時往往需要將照片按照修改時間重命名,下面寫了一個很簡單的python腳本,理論上來說支持10000張照片以內(nèi)的照片序列重命名,操作如下:
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)
#如果想執(zhí)行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) 輸出文件的創(chuàng)建時間 # os.path.getmtime(file) 輸出文件最近修改時間
如果想對其他類型的文件進行排序,更改對應(yīng)后綴名即可。
總結(jié)
到此這篇關(guān)于Python如何根據(jù)照片修改時間重命名并排序的文章就介紹到這了,更多相關(guān)Python重命名并排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
tensorflow tf.train.batch之?dāng)?shù)據(jù)批量讀取方式
今天小編就為大家分享一篇tensorflow tf.train.batch之?dāng)?shù)據(jù)批量讀取方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
使用matlab或python將txt文件轉(zhuǎn)為excel表格
這篇文章主要介紹了matlab或python代碼將txt文件轉(zhuǎn)為excel表格,本文通過matlab代碼和python 代碼給大家詳細(xì)介紹,需要的朋友可以參考下2019-11-11
Python 工具類實現(xiàn)大文件斷點續(xù)傳功能詳解
用python進行大文件下載的時候,一旦出現(xiàn)網(wǎng)絡(luò)波動問題,導(dǎo)致文件下載到一半。如果將下載不完全的文件刪掉,那么又需要從頭開始,如果連續(xù)網(wǎng)絡(luò)波動,是不是要頭禿了。本文提供斷點續(xù)傳下載工具方法,希望可以幫助到你2021-10-10
Python的Django框架中消息通知的計數(shù)器實現(xiàn)教程
通知的計數(shù)器非常有用,新通知時+1和讀過通知后的-1是最基本的功能,這里我們就來看一下Python的Django框架中消息通知的計數(shù)器實現(xiàn)教程2016-06-06
在PyCharm中遇到pip安裝 失敗問題及解決方案(pip失效時的解決方案)
這篇文章主要介紹了在PyCharm中遇到pip安裝失敗問題及解決方案(pip失效時的解決方案),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03

