在Python3中更改文件中的创建时间

时间:2017-12-15 20:10:53

标签: 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)

如何解决此错误?

1 个答案:

答案 0 :(得分:3)

你的函数convert_to_integer返回20060606,确实是1970年8月21日,自1970年以来经过的秒数。

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