为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

开满天机 2023-01-04 14:10:31
我正在尝试用标题替换 csv 输入文件的第一行。第一行是空白,0。见下图。我希望空白和 0 分别为“ID”和“sil_score”。见下文:但我不断得到这个:import csvr = 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)
查看完整描述

3 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

这样就可以了。 newline=''也应该用于修复您看到的空行问题。

import csv


with 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)


查看完整回答
反对 回复 2023-01-04
?
qq_笑_17

TA贡献1818条经验 获得超7个赞

如果您要编辑 .csv 的前两行,则必须更改访问列表的方式。

你需要使用

lines[0][0]='ID'
lines[0][1]='sil_score'

反而。

虽然输出看起来很奇怪,但 csv 导入可能有些奇怪。尝试在文本编辑器中打开文件,可能更容易看到发生了什么。


查看完整回答
反对 回复 2023-01-04
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

您可以在不使用 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))

希望这可以帮助!


查看完整回答
反对 回复 2023-01-04
  • 3 回答
  • 0 关注
  • 276 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信