我正在尝试使用python中的open方法创建一个文件,其中使用datetime方法在给定的文件名中附加日期,如下所示
import datetime
f=open('myfile.txt_'+str(datetime.datetime.now()),'w')
print(f.name)
我遇到错误
File "C:/Users/nitjoshi2/PycharmProjects/Lab/list.py", line 2, in <module>
f=open('myfile.txt_'+str(datetime.datetime.now()),'w')
OSError: [Errno 22] Invalid argument: 'myfile.txt_2019-01-24
01:12:42.395125'
请解释错误,因为我可以看到所需的输出,即myfile.txt_2019-01-24 01:12:42.395125出现错误消息,但没有将文件作为输出
答案 0 :(得分:0)
我的假设是该文件应该是*.txt
文件,因此您将文件名创建为myfile.txt_2019-01-24
而不是myfile_2019-01-24.txt
,这很容易解决。
此外,建议您使用with open() as f
而不是f=open()
,因为它将自动为您关闭文件,而无需f.close()
。
修改
尽管正如@jasonharper所指出的那样,您不能使用带有冒号的文件名,所以您将需要在没有时间的情况下对其进行格式化。
import datetime
with open('myfile{}_.txt'.format(strftime('%Y-%m%d %H-%M', datetime.datetime.now())),'w') as f:
print(f.name)
#myfile_2019-01-24 01-12-42 .txt