将 CSV 名称更改为 CSV 日期时间 python



我想将csv名称(在本例中为示例.csv(更改为特定名称:日期时间名称。我有一个名为from datetime import datetime的图书馆

这是我创建 cvsFile 的句子:

with open('Example.csv', 'w') as csvFile:

我希望我的输出是:

20180820.csv
20180821.csv
20180822.csv ... etc

如果我在同一天运行多次,我希望我的输出是:

20180820.csv (First time that I run the script) 
20180821(2).csv (Second time run) 
... etc

像这样:

import pandas as pd
import datetime
current_date = datetime.datetime.now()
filename = str(current_date.day)+str(current_date.month)+str(current_date.year)
df.to_csv(str(filename + '.csv'))

由于您知道如何创建文件名,您只需检查它是否已存在:

def exists(filename):
try:
with open(filename) as f:
file_exists = True
except FileNotFoundError:
file_exists = False
return file_exists
name = 'some_date.csv'
c = 0
while exists(filename):
c += 1
name = 'some_date({}).csv'.format(c)
# do stuff with name

如果您可以管理跟踪文件的"渐进式"变量,请找到解决方案。否则,您需要检查磁盘内容,并且可能会更复杂。

import datetime
progressive = 0
today = datetime.date.today()
todaystr = str(today)
rootname = todaystr
progressive += 1
if progressive > 1:
rootname = todaystr + '_' + str(progressive)
filename = rootname + '.csv'

计算目录中名称中日期相同的文件数,并使用该信息创建文件名。这是您的两个问题的解决方案。

import datetime
import os
now = datetime.datetime.now().strftime("%y%m%d")
# count the number of files already in the output dir with date (now)
count = len([name for name in os.listdir('./output/') if (os.path.isfile(name) and now in name)])
csv_name = './output/' + now 
if count > 0:
csv_name = csv_name + "(" + str(count+1) +")"
csv_name = csv_name + ".csv"
with open(csv_name, 'w') as csvFile:
pass

祝你好运。

我找到了解决方案:

只在变量中获取实时时间,然后与.csv连接(并且我还将此 csv 输出放在称为 output 的特定文件夹中(。最后,我打开带有变量名称的 csvFile。

> now = datetime.now().strftime('%Y%m%d-%Hh%M')
> csvname = './output/' + now + '.csv'
> with open(csvname, 'w') as csvFile:

不能做我问题的第二部分。我希望如果我运行多次代码,日期时间名称更改或添加 (2(、(3(...等。

最新更新