python - 更改Python3中文件的创建时间

标签 python

我正在尝试更改 Windows 中文件的创建日期,我正在 python 3.6 中执行此操作。 问题是创建日期在日期“2006-06-06 00:00:00”之前没有更改,因此我收到日期“1970 年 8 月 21 日”。

代码:

from datetime import datetime
import pywintypes, win32file, win32con

def convert_to_datetime(date):
    datetime_object = datetime.strptime(date, '%Y-%m-%d %H:%M:%S')
    return datetime_object

def convert_to_integer(dt_time):
    return 10000*dt_time.year + 100*dt_time.month + dt_time.day

def changeFileCreationTime(fname, newtime):
    wintime = pywintypes.Time(newtime)
    winfile = win32file.CreateFile(
        fname, win32con.GENERIC_WRITE,
        win32con.FILE_SHARE_READ | win32con.FILE_SHARE_WRITE | win32con.FILE_SHARE_DELETE,
        None, win32con.OPEN_EXISTING,
        win32con.FILE_ATTRIBUTE_NORMAL, None)

    win32file.SetFileTime(winfile, wintime, None, None)

    winfile.close()

#

date_convert = convert_to_datetime("2006-06-06 00:00:00")
date_int = convert_to_integer(date_convert)

changeFileCreationTime("test.txt",date_int)

如何修复此错误?

最佳答案

您的函数 convert_to_integer 返回 20060606,这实际上是 1970 年 8 月 21 日(以 1970 年以来经过的秒数计算)。

您应该使用方法 datetime.timestamp()

关于python - 更改Python3中文件的创建时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47839248/

相关文章:

python - 将字符串打印为十六进制字节

python - PyODBC 执行存储过程未完成

python - 为 Python 脚本更改 DNS 服务器

python - Selenium:将鼠标 move 到元素不起作用

python - 生成始终包含特定字母python的字符串

python - 查找 HDF5 数据集中的唯一列

python - 加入字符串。生成器或列表理解?

python - 如何对日期时间索引数据框进行排序

python - 如何以这种特定方式对 2D numpy 数组进行排序

python - 如何在不重新加载大型 CSV 的情况下进行多个 Dask 计算