python利用文件時(shí)間批量重命名照片和視頻
本文實(shí)例為大家分享了python利用文件時(shí)間批量重命名照片和視頻的具體代碼,供大家參考,具體內(nèi)容如下
問(wèn)題描述
承接上節(jié)的問(wèn)題,在安卓和蘋(píng)果間互導(dǎo)照片和視頻還容易出現(xiàn)文件名混亂的問(wèn)題,如下圖所示。
代碼實(shí)現(xiàn)
為保證文件名的準(zhǔn)確性,這里主要提取照片的拍攝時(shí)間和視頻的修改時(shí)間用于重命名,這兩個(gè)時(shí)間一般是其原始時(shí)間,實(shí)現(xiàn)代碼如下:
import os import re import time import exifread def get_file_date(filepath, format): ''' 獲取文件的時(shí)間戳,這里主要返回視頻的時(shí)間,原時(shí)間一般為修改時(shí)間 st_atime (訪(fǎng)問(wèn)時(shí)間), st_mtime (修改時(shí)間), st_ctime(創(chuàng)建時(shí)間) ''' statinfo = os.stat(filepath) temp_time = time.localtime(statinfo.st_mtime) return str(time.strftime(format, temp_time)) def get_exif_date(filepath): # 獲取照片的拍攝日期,利用exifread模塊 FIELD='EXIF DateTimeOriginal' fd=open(filepath,'rb') tags=exifread.process_file(fd) fd.close() if FIELD in tags: temp_time=str(tags[FIELD]) new_time=temp_time.replace(':','').replace(' ','_') return new_time def get_filetype(basename): ''' 利用正則表達(dá)式判斷文件后綴,照片返回0,視頻返回1,其他返回2 ''' img_reg=r'(\.JPG|\.jpg|\.bmp|\.png)' vedio_reg=r'(\.mp4|\.MP4|\.MOV)' if re.search(img_reg,basename): #匹配照片 return 0 elif re.search(vedio_reg,basename): #匹配視頻 return 1 else: return 2 if __name__ == "__main__": dirname = r'D:\ProgramData\Python' os.chdir(dirname) # 切換至當(dāng)前目錄 basenames = os.listdir(dirname) format = '%Y%m%d_%H%M%S' # 時(shí)間格式 for basename in basenames: filepath = dirname+'\\'+basename num=get_filetype(basename) if num==0: str_time=get_exif_date(filepath) #處理照片 newname=str_time+os.path.splitext(basename)[1] os.rename(basename,newname) print(basename+'---照片修改成功!') elif num==1: str_time=str(get_file_date(filepath, format)) #處理視頻 newname=str_time+os.path.splitext(basename)[1] os.rename(basename,newname) print(basename+'---視頻修改成功!') else: print(basename+"---文件格式不正確!")
結(jié)論
最后修改結(jié)果如下。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python中for循環(huán)把字符串或者字典添加到列表的方法
今天小編就為大家分享一篇python中for循環(huán)把字符串或者字典添加到列表的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07python獲取當(dāng)前時(shí)間對(duì)應(yīng)unix時(shí)間戳的方法
這篇文章主要介紹了python獲取當(dāng)前時(shí)間對(duì)應(yīng)unix時(shí)間戳的方法,涉及Python時(shí)間操作的相關(guān)技巧,非常簡(jiǎn)單實(shí)用,需要的朋友可以參考下2015-05-05Python基礎(chǔ)中的的if-else語(yǔ)句詳解
這篇文章主要為大家詳細(xì)介紹了Python基礎(chǔ)中的的if-else語(yǔ)句,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-02-02python for循環(huán)輸入一個(gè)矩陣的實(shí)例
今天小編就為大家分享一篇python for循環(huán)輸入一個(gè)矩陣的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11對(duì)Python實(shí)現(xiàn)累加函數(shù)的方法詳解
今天小編就為大家分享一篇對(duì)Python實(shí)現(xiàn)累加函數(shù)的方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01pandas讀取excel時(shí)獲取讀取進(jìn)度的實(shí)現(xiàn)
這篇文章主要介紹了pandas讀取excel時(shí)獲取讀取進(jìn)度的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04