如何在python中打开文件名后加上日期的文件?

时间:2019-01-23 19:48:06

标签: python

我正在尝试使用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出现错误消息,但没有将文件作为输出

1 个答案:

答案 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