添加标题行以在Python中导出csv

时间:2017-01-23 09:01:52

标签: python

我想用Python添加标题行我的最终输出csv。我怎样才能做到这一点?首先,我删除了我的主文件items.csv的标题,因为最后python也会在标题中添加'target'个字。但在添加单词后我想写一个新的标题。

这是我的代码:

import csv
from itertools import islice
import os

with open('items.csv') as sample, open('items_50.csv', "w") as out:
    csv1=csv.reader(sample)
    header = next(csv1, None)
    csv_writer = csv.writer(out)
    sirali = sorted(csv1, key=lambda x:int(x[0]), reverse=True)
    csv_writer.writerows(islice(sirali,50))


file1=open('items_50.csv','rb') 
readfile=csv.reader(file1,)
file2=open('final.csv','wb')
writefile=csv.writer(file2,delimiter='"')
result=()


for row in readfile:   
    result= [row[0]+','+row[1]+','+row[2]+','+row[3]+'target']
    writefile.writerow(result)

file1.close()
file2.close()

现在我的final.csv的一个例子:

0,apple,orange,gettarget
25,steven,jack,sendtarget
33,pencil,book,sendtarget
8,notebook,cellphone,gettarget

我想这样做:

count,thing,owner,action
0,apple,orange,gettarget
25,steven,jack,sendtarget
33,pencil,book,sendtarget
8,notebook,cellphone,gettarget

谢谢。

2 个答案:

答案 0 :(得分:0)

请{for} for循环:

writefile.writerow(["count", "thing", "owner", "action"])

BTW:你可以做到

for row in readfile:
    row[3] += 'target' 
    writefile.writerow(row)

答案 1 :(得分:0)

在这种情况下循环之前

if os.path.getsize(f_path) > 0: writefile.writerow(["count", "thing", "owner", "action"])

如果文件为空,这将添加行。