python利用文件時(shí)間批量重命名照片和視頻
本文實(shí)例為大家分享了python利用文件時(shí)間批量重命名照片和視頻的具體代碼,供大家參考,具體內(nèi)容如下
問題描述
承接上節(jié)的問題,在安卓和蘋果間互導(dǎo)照片和視頻還容易出現(xià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 (訪問時(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)文章
Django頁(yè)面數(shù)據(jù)的緩存與使用的具體方法
這篇文章主要介紹了Django頁(yè)面數(shù)據(jù)的緩存與使用的具體方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
Flask框架學(xué)習(xí)筆記(一)安裝篇(windows安裝與centos安裝)
Flask是一個(gè)輕量級(jí)的Web應(yīng)用框架, 使用Python編寫。Flask也被稱為 “microframework” ,因?yàn)樗褂煤?jiǎn)單的核心,用 extension 增加其他功能。2014-06-06
Python開發(fā)之基于模板匹配的信用卡數(shù)字識(shí)別功能
這篇文章主要介紹了基于模板匹配的信用卡數(shù)字識(shí)別功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01
Python 解決OPEN讀文件報(bào)錯(cuò) ,路徑以及r的問題
今天小編就為大家分享一篇Python 解決OPEN讀文件報(bào)錯(cuò) ,路徑以及r的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2019-12-12
python正則表達(dá)式完成車牌號(hào)檢驗(yàn)的代碼實(shí)例
這篇文章主要給大家介紹了關(guān)于python正則表達(dá)式完成車牌號(hào)檢驗(yàn)的相關(guān)資料,在Python中正則表達(dá)式是一種用于匹配和操作字符串的強(qiáng)大工具,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02

