rgdggf 2022-11-22 18:27 采纳率: 80%
浏览 12
已结题

求一个python脚本,根据文件名字中的时间修改照片和视频的拍摄时间,创建时间,修改时间

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

img

  • 写回答

7条回答 默认 最新

  • Crayon112 2022-11-22 22:26
    关注
    
    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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 12月5日
  • 已采纳回答 11月27日
  • 创建了问题 11月22日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改