Python如何根據(jù)照片修改時(shí)間重命名并排序詳解
一、Background
當(dāng)想將照片序列合成延時(shí)攝影視頻時(shí),可能會(huì)發(fā)現(xiàn)照片中缺少一張,或者照片序列是跨時(shí)間、并不連續(xù)的,如圖1所示,但PR中只有連續(xù)的照片序列才能導(dǎo)入。
圖1 時(shí)間不連續(xù)序列
二、Method
這時(shí)往往需要將照片按照修改時(shí)間重命名,下面寫了一個(gè)很簡單的python腳本,理論上來說支持10000張照片以內(nèi)的照片序列重命名,操作如下:
1.將照片備份(沒有undo機(jī)制,以免腳本失誤無法撤銷)
2.將rename.exe文件放入照片文件中,雙擊即可重命名(不可更改名字)。如果安裝過python,也可以直接雙擊腳本文件。
圖2 操作演示
三、Code
import os def reNameByTime(path): mlist = [] # 獲取文件名列表 files = os.listdir(path) # 獲得名稱帶時(shí)間戳的新文件名列表 for filename in files: # 獲得文件的最后修改時(shí)間 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) # 遍歷修改時(shí)間戳為序號 for i in range(len(mlist)): # 截取獲得原先的文件名 oldname = mlist[i][11:] # 切片操作,從11至后 # 將時(shí)間戳部分修改為序號,得到新的文件名 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) # 重命名文件,按修改時(shí)間排序并加序號前綴 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)
如果想按照其他時(shí)間進(jìn)行排序:
# os.path.getatime(file) 輸出文件訪問時(shí)間 # os.path.getctime(file) 輸出文件的創(chuàng)建時(shí)間 # os.path.getmtime(file) 輸出文件最近修改時(shí)間
如果想對其他類型的文件進(jìn)行排序,更改對應(yīng)后綴名即可。
總結(jié)
到此這篇關(guān)于Python如何根據(jù)照片修改時(shí)間重命名并排序的文章就介紹到這了,更多相關(guān)Python重命名并排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
tensorflow實(shí)現(xiàn)將ckpt轉(zhuǎn)pb文件的方法
這篇文章主要介紹了tensorflow實(shí)現(xiàn)將ckpt轉(zhuǎn)pb文件的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04詳談Python高階函數(shù)與函數(shù)裝飾器(推薦)
下面小編就為大家?guī)硪黄斦凱ython高階函數(shù)與函數(shù)裝飾器(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-09-09Python+Selenium實(shí)現(xiàn)讀取網(wǎng)易郵箱驗(yàn)證碼
在自動(dòng)化工作中,有可能會(huì)遇到一些發(fā)送郵箱驗(yàn)證碼類似的功能。本文將利用Python?Selenium實(shí)現(xiàn)自動(dòng)化讀取網(wǎng)易郵箱驗(yàn)證碼,感興趣的可以了解一下2022-03-03圖文詳解在Anaconda安裝Pytorch的詳細(xì)步驟
Anaconda指的是一個(gè)開源的Python發(fā)行版本,其包含了conda、Python等180多個(gè)科學(xué)包及其依賴項(xiàng),下面這篇文章主要給大家介紹了關(guān)于在Anaconda安裝Pytorch的詳細(xì)步驟,需要的朋友可以參考下2022-07-07Python @property原理解析和用法實(shí)例
這篇文章主要介紹了Python @property原理解析和用法實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02