13522143246 发表于 2024-10-31 16:40

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

### 前段时间有个修改文件创建时间的需求,找了挺多插件,要不就是收费,要不就是没修改成功,然后就直接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)

```
修改前的文件相关时间


修改后的文件相关时间

nbmissliu 发表于 2024-11-3 09:37

你这个感觉是AI写完的,{:1_909:}

feixiang1126 发表于 2024-11-6 09:58

有现成的工具了,NewFileTime了解一下
页: [1]
查看完整版本: 使用python修改文件的创建、修改、访问时间