我有一个csv文件[没有标题]:
1,0,1,a
2,1,2,b
3,4,5,c
如何将其转换为每行包含今天日期和文件2的格式?
1,0,1,a,2021-07-22,file2
2,1,2,b,2021-07-22,file2
3,4,5,c,2021-07-22,file2
这样做可能吗?当我尝试使用csvwriter时,我只能追加到末尾。
with open("temp_csv.csv","a") as fout:
writer = csv.writer(','+date+',file2n')
print(writer)
如果您需要使用CSV模块,那么这是可行的。
你的问题是你试图在原地操纵csv。相反,您应该读取每一行,处理这一行,然后将其写入一个新的输出csv文件。
import csv
from datetime import datetime
todays_date = datetime.today().strftime('%Y-%m-%d')
with open("in.csv","r") as fin, open("out.csv", 'w', newline='') as fout:
reader = csv.reader(fin)
writer = csv.writer(fout)
for line in reader:
line.append(todays_date)
line.append("file2")
writer.writerow(line)
我建议使用pandas库。
首先,使用pandas:将文件加载为数据帧df
import pandas as pd
df = pd.read_csv('temp_csv.csv', header=None, index_col=0)
然后添加您想要的列
df['date'] = ['2021-07-22' for i in range(len(df))]
df['file'] = ['file2' for i in range(len(df))]
最后,保存您的csv
df.to_csv('temp_csv.csv', header=False)