求一个python脚本,根据文件名字中的时间修改照片和视频的拍摄时间,创建时间,修改时间。文件名不是固定格式,文件可能有重复的,但是文件名中一定有时间。

求一个python脚本,根据文件名字中的时间修改照片和视频的拍摄时间,创建时间,修改时间。文件名不是固定格式,文件可能有重复的,但是文件名中一定有时间。

import re
import time
from win32file import (
CreateFile, SetFileTime, CloseHandle,
GENERIC_READ, GENERIC_WRITE, OPEN_EXISTING,
)
from pywintypes import Time
def parse_time(name: str):
year, month, day = '1990', '01', '01'
year_p = re.search(r"2\d{3}", name)
if year_p is None:
return year, month, day
year = year_p.group()
_, y_e = year_p.span()
name = name[y_e:]
month_p = re.search(r"[01][0-9]?", name)
if month_p is None:
return year, month, day
month = month_p.group()
_, m_e = month_p.span()
name = name[m_e:]
day_p = re.search(r"[0123][0-9]?", name)
if day_p is None:
return year, month, day
day = day_p.group()
return year, month, day
def modify_file_time(file_path):
year, month, day = parse_time(file_path)
modify2time = time.strptime(
year + '-' + month + '-' + day,
"%Y-%m-%d",
)
try:
fh = CreateFile(
file_path, GENERIC_READ | GENERIC_WRITE,
0, None, OPEN_EXISTING, 0, 0,
)
modify_time = Time(modify2time)
SetFileTime(fh, modify_time, modify_time, modify_time)
CloseHandle(fh)
return True
except Exception as e:
print(e)
return False
if __name__ == "__main__":
file_name = r"test2022-05-14.txt" #文件路径
r = modify_file_time(file_name)
print(r)
需要额外安装 pywin32 库,安装指令 pip install pywin32