import os
import re
import time
import exifread
def get_file_date(filepath, format):
'''
獲取文件的時間戳,這里主要返回視頻的時間,原時間一般為修改時間
st_atime (訪問時間), st_mtime (修改時間), st_ctime(創(chuàng)建時間)
'''
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' # 時間格式
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+"---文件格式不正確!")