我有一个程序试图使用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
格式化为字符串,但返回相同的错误。
答案 0 :(得分:4)
:
字符在Windows文件系统上无效。
另外,考虑使用strftime
函数将日期转换为字符串,而不是使用str()
函数:
now = datetime.datetime.now().strftime('%Y%m%d-%H%M%S')