添加标题行以在Python中导出csv
我想用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
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
它们之间没有逗号和额外的引号!因为您更改了分隔符,现在它使用了“
而不是逗号,
-removedelimiter='”
当我删除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]