无法在Python中的open()中传递包含当前日期和时间的字符串

时间:2018-08-21 13:19:22

标签: python file datetime

我正在尝试创建一个文件,其名称包含创建时的当前日期和时间。

但是当将字符串传递给open()函数时,它给了我无效的参数错误。

这是我尝试过的代码:

import os, time
from datetime import datetime
# fname='Portals Statuses at '+datetime.now().strftime('%Y-%b-%d %H:%M:%S')+'.txt'
# fname="Portals Statuses at "+time.strftime('%Y-%b-%d %H:%M:%S')+".txt"
fl=open(fname,'w+')

无论从上面的代码向fname传递什么值,它仍然会在错误以下抛出

Traceback (most recent call last):
  File "C:/Users/preddy53/PycharmProjects/Practice/Status checks.py", line 7, in <module>
    fl=open(fname,'w+')
OSError: [Errno 22] Invalid argument: 'Portals Statuses at 2018-Aug-21 18:45:01.txt'

2 个答案:

答案 0 :(得分:3)

只需更改.strftime()调用即可将:(不能在文件名中使用)替换为.或其他内容。

fname='Portals Statuses at '+datetime.now().strftime('%Y-%b-%d %H.%M.%S')+'.txt'

答案 1 :(得分:1)

知道了。我在文件名':'

中带有冒号