首頁  >  文章  >  後端開發  >  如何修復向 CSV 檔案新增列時跳行的 Python 腳本?

如何修復向 CSV 檔案新增列時跳行的 Python 腳本?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-21 21:03:30376瀏覽

How to Fix Python Script that Skips Lines When Adding a New Column to CSV Files?

如何在Python 中新增欄位

問題描述

您有多個包含以下資料的CSV 檔案:

Name        Code
blackberry  1
wineberry   2
rasberry    1
blueberry   1
mulberry    2

您想要在所有這些檔案中新增一個名為「Berry」的新列,以便輸出如下所示:

Name        Code    Berry
blackberry  1   blackberry
wineberry   2   wineberry
rasberry    1   rasberry
blueberry   1   blueberry
mulberry    2   mulberry

但是,您目前的Python 腳本無法正常運作。它會跳過每一行並僅使用值“Berry”填充新列。

解決方案

要解決此問題,您需要修改程式碼以使用next() 函數而不是row0 = r.next() (對於Python 3,使用reader = csv.reader( csvinput))。更新後的程式碼:

<code class="python">import csv

with open('C:/test/test.csv', 'r') as csvinput:
    with open('C:/test/output.csv', 'w') as csvoutput:
        writer = csv.writer(csvoutput, lineterminator='\n')
        reader = csv.reader(csvinput)

        all = []
        row = next(reader)
        row.append('Berry')
        all.append(row)

        for row in reader:
            row.append(row[0])
            all.append(row)

        writer.writerows(all)</code>

註解:

  • 行終止符參數設定為 'n' 以避免輸出檔中出現雙倍間距。
  • 清單用於附加所有行並使用 writerow 一次性寫入它們。這可能不適合非常大的文件。
  • 兩個with open 語句可以嵌套在同一行,就像open('C:/test/test.csv','r') as csvinput, open('C:/test/output. csv', 'w') as csvoutput:.

以上是如何修復向 CSV 檔案新增列時跳行的 Python 腳本?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn