ホームページ  >  記事  >  バックエンド開発  >  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 ファイルに新しい列を追加する方法

問題の説明

次のようなデータを含む 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>

注:

  • 出力ファイル内の二重スペースを避けるために、lineterminator パラメーターは 'n' に設定されます。
  • リストすべての行を追加し、writerows を使用してワンショットで書き込むために使用されます。これは、非常に大きなファイルには適していない可能性があります。
  • open ステートメントを含む 2 つは、open('C:/test/test.csv','r') を csvinput として使用する場合と同じ行にネストできます。 open('C:/test/output.csv', 'w') as csvoutput:.

以上がCSV ファイルに新しい列を追加するときに行をスキップする Python スクリプトを修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。