Python中的Open()无法使用文件名中涉及datetime.datetime.now()的变量

时间:2014-02-07 21:18:05

标签: python datetime

我有一个程序试图使用open()来使用包含日期时间信息的变量来命名文件。我的代码是:

now = datetime.datetime.now()
filename = ''.join(['log ', str(now), '.txt'])
log = open(filename, mode = 'a')

当我运行此代码时,它会出现此错误:

line 58, in <module>
    log = open(filename, mode = 'a')
OSError: [Errno 22] Invalid argument: 'log 2014-02-07 21:02:16.475880.txt'

如果我用字符串替换open(filename),即使错误输出了字符串,此代码也能正常工作。我也尝试使用str()函数将filename格式化为字符串,但返回相同的错误。

1 个答案:

答案 0 :(得分:4)

:字符在Windows文件系统上无效。

另外,考虑使用strftime函数将日期转换为字符串,而不是使用str()函数:

now = datetime.datetime.now().strftime('%Y%m%d-%H%M%S')