1. 程式人生 > 其它 >利用照片名中的日期批量修改照片的修改時間和訪問時間(python實現)

利用照片名中的日期批量修改照片的修改時間和訪問時間(python實現)

技術標籤:python程式設計python

運用場景

前些天家人換了手機,在匯入一些照片時發現相簿APP中的照片排序混亂,好在照片名中有日期資訊,就利用pyhton實現批量修改照片的相關時間
在這裡插入圖片描述

程式碼實現

修改檔案時間,首先想到的就是利用python中的time模組,程式碼如下

import os,sys,time,re

'''
利用utime模組,簡單好用,但只能改 修改時間和訪問時間,不能改建立時間
'''
# 將檔名中的空格替換為‘-’
def space2bar(dirname, basename):
    newname = basename.replace(' ', '-'
) os.rename(os.path.join(dirname, basename), os.path.join(dirname, newname)) return newname # 修改日期 def modify_date(dirname, basename): """獲取檔名中的時間格式,用於修改時間 """ # 檔名正則表示式 expression = r"\d{4}-\d{2}-\d{2}-\d{6}" if re.match(expression, basename)
: temp_str = basename.split('-') # 獲取temp_str[4]的前4位作為時分 hour_minute = temp_str[3][0:4] print(dirname+basename+'>>Modify_Date>>' + temp_str[0]+temp_str[1]+temp_str[2]+hour_minute) temp_time = time.strptime( temp_str[0]+temp_str[
1]+temp_str[2]+hour_minute, '%Y%m%d%H%M') # 將strptime,返回用秒數來表示時間的浮點數 mtime = time.mktime(temp_time) # mktime,修改檔案的修改和訪問時間 os.utime(dirname+basename, (mtime, mtime)) print("修改成功") else: print("檔名格式不符合") if __name__ == "__main__": file_path = r'D:\ProgramData\Python\Modify_date\2015-04-07 142409.jpg' basename = os.path.basename(file_path) dirname = os.path.dirname(file_path)+'\\' if len(basename.split(' ')) > 1: basename = space2bar(dirname, basename) modify_date(dirname, basename)

問題

利用time模組中的utime只能修改檔案中的修改時間和訪問時間,不能修改建立時間。下節繼續利用win32file模組修改上述三個時間。