首页 > 解决方案 > OSError: [Errno 22] 打开文件时参数无效

问题描述

我正在尝试打开一个名称为日期和时间格式为 dd-mm-yy hh:mm:ss 的文件。这样做:

from datetime import datetime
timestr = datetime.now().strftime("%d-%m-%y %H:%M:%S")
print(timestr)
f = open(timestr, "w+")
f.close()

总是导致这个错误:

C:\Users\keona\Documents\Py>timetest.py
14-09-19 21:28:19
Traceback (most recent call last):
  File "C:\Users\keona\Documents\Py\timetest.py", line 4, in <module>
    f = open(timestr, "w+")
OSError: [Errno 22] Invalid argument: '14-09-19 21:28:19'

但是,由于某种原因,当我取消秒数时,代码有效?

from datetime import datetime
timestr = datetime.now().strftime("%d-%m-%y %H:%M")
print(timestr)
f = open(timestr, "w+")
f.close()

这导致一个文件只命名为:

14-09-19 21

关于为什么会发生这种情况的任何建议或想法?

标签: pythondatetime

解决方案


我会说这可能是因为:是 Windows 中文件名中的无效字符。

尝试使用strftime("%d-%m-%y %H-%M-%S")


推荐阅读