python - 在 Windows 中将创建时间添加十秒

标签 python

我正在尝试编写一个脚本,通过将文件的创建时间增加 10 秒来更改它。我正在 Windows 7 上测试它,但也想在 XP 上运行它。我尝试遵循 How do I change the file creation date of a Windows file from Python? 中的解决方案使用以下代码:

import os
import pywintypes, win32file, win32con
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()


for (path, dirs, files) in os.walk('C:/Personal/fc/Images/Corvette'):
    for file in files:
        print(os.path.join(path, file))
        print(os.stat(os.path.join(path, file)))
        changeFileCreationTime(os.path.join(path, file),os.stat(os.path.join(path, file)).st_ctime+10)
        print(os.stat(os.path.join(path, file)))

但我收到错误:

Traceback (most recent call last):
  File "C:\Python31\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 326, in RunScript
   exec(codeObject, __main__.__dict__)
  File "C:\Users\hermamr1\Desktop\Script1.py", line 20, in <module>
   changeFileCreationTime(os.path.join(path, file),os.stat(os.path.join(path, file)).st_ctime+10)
  File "C:\Users\hermamr1\Desktop\Script1.py", line 11, in changeFileCreationTime
   win32file.SetFileTime(winfile, wintime, None, None)
ValueError: astimezone() cannot be applied to a naive datetime

我正在 Python 3.1.3 上尝试此操作,但如果需要,我可以使用 Python 2.7。我只需要在 Windows 上运行它。

最佳答案

似乎 python2.7 和 python3 中 astimezone() 的实现略有不同。我尝试在它们两者下运行您的代码,只有 python3 引发 ValueError 。所以,我的解决方案是切换到python2。
更新:我不是唯一一个认为这些实现不同的人,你可以看看 following conversation (从底部数第二个帖子)。

关于python - 在 Windows 中将创建时间添加十秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12801362/

相关文章:

python - 将 numpy 数组 append 到列表 - 奇怪的事情

python - 高级 Python 正则表达式 : how to evaluate and extract nested lists and numbers from a multiline string?

Python 和 csv.writer : Open in every loop or keep open?

python - 为什么重启线程时需要重新创建实例?

Python:类型错误: 'NoneType' 对象不可下标

python - 如何为 python 配置谷歌云平台数据丢失预防客户端库以在 SSL 代理后面工作?

python - 带有两个提交按钮的 Django 表单。 . .一个需要字段,一个不需要

python - 如何传递从批处理文件运行的 python 脚本的可变命令行参数?

python - 如何在 Selenium 中点击迭代 Web 元素列表?

Python:逐行读取文件的最佳方式