簡體   English   中英

如何使用 Python 將 csv 的第一行替換為 header?

[英]How can I replace first line of a csv with a header using Python?

我正在嘗試用 header 替換 csv 輸入文件的第一行。 第一行是空白,0。見下圖。

在此處輸入圖像描述

我希望空白和 0 分別是“ID”和“sil_score”。 見下文:

在此處輸入圖像描述

但我不斷得到這個:

在此處輸入圖像描述

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)

如果您要編輯.csv 的前兩行,則必須更改訪問列表的方式。

你需要使用

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

反而。

雖然 output 看起來很奇怪,但 csv 導入可能會有些奇怪。 嘗試在文本編輯器中打開文件,可能更容易看到發生了什么。

這會做到的。 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)

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

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM