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

添加标题行以在Python中导出csv,python,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

我想用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

谢谢。

循环之前执行以下操作:

writefile.writerow(["count", "thing", "owner", "action"])
顺便说一句:你能做到

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

在这种情况下循环之前

如果os.path.getsize(f_path)>0:
writefile.writerow([“计数”、“对象”、“所有者”、“操作])


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

使用
writerow
与其他数据类似。顺便说一句:您可以执行
row[3]+='target'
和以后的
writerow(row)
它显示如下:
count“thing”owner“action
它们之间没有逗号和额外的引号!因为您更改了
分隔符
,现在它使用了
而不是逗号
-remove
delimiter='”
当我删除
delimiter='”
时,它会放入我想要的标题,但会在每行的开头和结尾添加引号。像这样:
“0,苹果,橙色,gettarget”
好了。我用了你的BTW解决方案来移除delimeter。谢谢。顺便说一句:你可以用
pandas
做得更短,因为它可以更改行中的所有值,而无需
for
循环,并且它不会更改标题。我说的是你正在写的文件,我看到了。我认为furas的解决方案与furas相同,但出现了另一个问题:)不要对readfile中的行使用
:result=[row[0]+'、'+row[1]+'、'+row[2]+'、'+row[3]+'target']writefile.writerow(result)
使用append将变量追加到列表中,也可以这样做
result=[row[0],row[1]