使用python修改文件的创建、修改、访问时间

查看 23|回复 0
作者:13522143246   
前段时间有个修改文件创建时间的需求,找了挺多插件,要不就是收费,要不就是没修改成功,然后就直接python !启动! 顺便也把修改时间和访问时间做了修改,以下是源码,还是很简单的,个人比较懒{:1_896:} 还没封装成exe的GUI,各位大佬有需要可以自行封装一下。
# -*- coding:utf-8 -*-
import datetime
import os
import win32file
import pywintypes
def time_to_time_stamp(org_time) -> float:
    change_timestamp = org_time.timestamp()
    return change_timestamp
def change_file_create_dates(filepath: str, visit_date: datetime.datetime):
    # 修改文件的创建日期
    handle = win32file.CreateFile(filepath, win32file.GENERIC_WRITE, 0, None, win32file.OPEN_EXISTING,
                                  win32file.FILE_ATTRIBUTE_NORMAL, None)
    win32file.SetFileTime(handle, pywintypes.Time(visit_date))
def change_file_modified_dates(filepath: str, date_timestamp: float):
    # 修改文件的访问日期
    os.utime(filepath, (date_timestamp, os.path.getatime(filepath)))
def change_file_visit_dates(filepath, date_timestamp):
    # 修改文件的修改日期
    os.utime(filepath, (os.path.getatime(filepath), date_timestamp))
# 示例用法
file_path = r'C:\Users\xxx\Desktop\测试文档.docx'
creation_date = datetime.datetime(2023, 3, 15, 9, 10, 12, 99811)  # 设置新的创建日期 年 月 日 时 分 秒 微秒
modified_timestamp = time_to_time_stamp(datetime.datetime(2023, 3, 15, 10, 20, 53, 565720))  # 设置新的修改日期
visit_timestamp = time_to_time_stamp(datetime.datetime(2023, 3, 15, 10, 25, 36, 56520))  # 设置新的访问日期
if __name__ == '__main__':
    # 修改文件创建时间
    change_file_create_dates(file_path, creation_date)
    # 修改文件修改时间
    change_file_modified_dates(file_path, modified_timestamp)
    # 修改文件访问时间
    change_file_visit_dates(file_path, visit_timestamp)
修改前的文件相关时间


图片1.png (37.64 KB, 下载次数: 0)
下载附件
修改前的文件相关时间
2024-10-31 16:37 上传

修改后的文件相关时间


图片2.png (38.82 KB, 下载次数: 0)
下载附件
修改后的文件相关时间
2024-10-31 16:37 上传

时间, 文件

您需要登录后才可以回帖 登录 | 立即注册

返回顶部