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

Python中的Open()无法使用文件名中包含datetime.datetime.now()的变量,python,datetime,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: [

我有一个程序,它试图使用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'
第58行,在
日志=打开(文件名,模式='a')
OSError:[Errno 22]无效参数:“log 2014-02-07 21:02:16.475880.txt”

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

字符在windows文件系统上无效

也可以考虑使用<代码> StrfTime//Cuff>函数将日期转换为字符串,而不是使用<代码> Strand(< /代码>函数:

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

字符在windows文件系统上无效

也可以考虑使用<代码> StrfTime//Cuff>函数将日期转换为字符串,而不是使用<代码> Strand(< /代码>函数:

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

在Windows文件名中不允许使用冒号字符
。在Windows文件名中不允许使用冒号字符
。非常感谢,这非常有效。但现在它抛出了这个错误:@user3285560评论中没有收到错误消息。请尝试编辑您的问题,将其包括在内。非常感谢,这非常有效。但现在它抛出了这个错误:@user3285560评论中没有收到错误消息。尝试编辑您的问题以包含它。