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

求一个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 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥15 pyqt信号槽连接写法
  • ¥500 把面具戴到人脸上,请大家贡献智慧,别用大模型回答,大模型的答案没啥用
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。