我想每天运行此代码并将其自动写入.csv文件我确信我是否愿意每天都有自己的文件,或者每天修改现有的文件。如果我使用前者,这是我想我想要的,我想让每个文件都自动命名为代码运行的日期。现在我知道如何编写一个文件,每次运行代码时都会被重写。我是这样做的:

str1 = "\n".join(data)
outFile = open('sampledata.csv', 'write')
outFile.write(str1)
outFile.close()

如何编写代码,以便每次都自动保存到新的.csv文件中,并用代码运行的日期命名每个后续文件?

最佳答案

只需使用datetime模块的datetime.now()函数即可获得当前日期和时间如果需要特定格式,请使用strftime函数选择所需的确切格式否则,只需使用datetime.datetime.now().date().isoformat(),就可以选择一个正常的默认值。

>>> import datetime
>>> now = datetime.datetime.now()
>>> now.strftime("%Y-%m-%d")
'2013-11-01'
>>> datetime.datetime.now().date().isoformat()
'2013-11-01'

把你的代码带进来,最后是:
import datetime
str1 = "\n".join(data)

# Get the current date and time
now = datetime.datetime.now()
now_str = now.strftime("%Y-%m-%d")

# Write out to a file for today
outfilename = 'sampledata-{}.csv'.format(now_str)

outFile = open(outfilename, 'write')
outFile.write(str1)
outFile.close()

如果您需要小时、分钟、秒和微秒,请不要调用最新的(它会截断时间戳):
>>> import datetime
>>> datetime.datetime.now().isoformat()
'2013-11-01T21:55:45.465662'

但是,如果在Windows上运行此命令,则它不会接受文件名中的“:”。Linux和Mac已经准备好了。

10-06 08:53
查看更多