如何使用 Python 将 csv 的第一行替换为标题?

我正在尝试用标题替换 csv 输入文件的第一行。第一行是空白,0。见下图。

http://img4.mukewang.com/63b5199e0001aae401580164.jpg

我希望空白和 0 分别为“ID”和“sil_score”。见下文:

http://img3.mukewang.com/63b519a6000157e001710166.jpg

但我不断得到这个:

http://img4.mukewang.com/63b519b1000137bf01690379.jpg

import csv

r = csv.reader(open('C:/Users/Desktop/Geosill/attempt1.csv')) 

lines = list(r)


lines[1][0] = 'ID'

lines[2][0] = 'sil_score'



writer = csv.writer(open('C:/Users/Desktop/Geosill/attempt3.csv', 'w'))

writer.writerows(lines)


开满天机
浏览 279回答 3
3回答

FFIVE

这样就可以了。 newline=''也应该用于修复您看到的空行问题。import csvwith open('input.csv',newline='') as f:    r = csv.reader(f)    lines = list(r)lines[0] = ['ID','sil_score']with open('output.csv','w',newline='') as f:    w = csv.writer(f)    w.writerows(lines)

qq_笑_17

如果您要编辑 .csv 的前两行,则必须更改访问行列表的方式。你需要使用lines[0][0]='ID' lines[0][1]='sil_score'反而。虽然输出看起来很奇怪,但 csv 导入可能有些奇怪。尝试在文本编辑器中打开文件,可能更容易看到发生了什么。

小怪兽爱吃肉

您可以在不使用 csv.writer 的情况下执行此操作。试试这个:with open('C:/Users/Desktop/Geosill/attempt1.csv', "r") as infile:    lines = infile.readlines().rstrip().split(",")lines[0] = ["ID", "sil_score"]with open('C:/Users/Desktop/Geosill/attempt1.csv', "w") as outfile:    for line in lines:        outfile.write(",".join(line))希望这可以帮助!
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python