python利用文件時間批量重命名照片和視頻
本文實例為大傢分享瞭python利用文件時間批量重命名照片和視頻的具體代碼,供大傢參考,具體內容如下
問題描述
承接上節的問題,在安卓和蘋果間互導照片和視頻還容易出現文件名混亂的問題,如下圖所示。
代碼實現
為保證文件名的準確性,這裡主要提取照片的拍攝時間和視頻的修改時間用於重命名,這兩個時間一般是其原始時間,實現代碼如下:
import os import re import time import exifread def get_file_date(filepath, format): ''' 獲取文件的時間戳,這裡主要返回視頻的時間,原時間一般為修改時間 st_atime (訪問時間), st_mtime (修改時間), st_ctime(創建時間) ''' 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): ''' 利用正則表達式判斷文件後綴,照片返回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) # 切換至當前目錄 basenames = os.listdir(dirname) format = '%Y%m%d_%H%M%S' # 時間格式 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+"---文件格式不正確!")
結論
最後修改結果如下。
以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- python解析照片拍攝時間進行圖片整理
- python文件目錄操作之os模塊
- Python數據獲取實現圖片數據提取
- Python實現對word文檔添加密碼去除密碼的示例代碼
- Python如何根據照片修改時間重命名並排序詳解