Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Membetulkan Skrip Python yang Melangkau Baris Apabila Menambah Lajur Baharu pada Fail CSV?

Bagaimana untuk Membetulkan Skrip Python yang Melangkau Baris Apabila Menambah Lajur Baharu pada Fail CSV?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-21 21:03:30376semak imbas

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

Cara Menambah Lajur Baharu pada Fail CSV dalam Python

Penerangan Masalah

Anda mempunyai beberapa fail CSV yang mengandungi data seperti ini:

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

Anda ingin menambah lajur baharu bernama "Berry" pada semua fail ini, supaya output akan kelihatan seperti ini:

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

Walau bagaimanapun, skrip Python semasa anda tidak berfungsi dengan betul . Ia melangkau setiap baris dan mengisi lajur baharu dengan hanya nilai "Beri".

Penyelesaian

Untuk menyelesaikan isu ini, anda perlu mengubah suai kod untuk menggunakan fungsi next() dan bukannya row0 = r.next() (untuk Python 3, gunakan reader = csv.reader(csvinput)). Kod yang dikemas kini:

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

Nota:

  • Parameter penamat garis ditetapkan kepada 'n' untuk mengelakkan jarak dua kali dalam fail output.
  • Senarai digunakan untuk menambahkan semua baris dan menulisnya dalam satu pukulan menggunakan baris tulis. Ini mungkin tidak sesuai untuk fail yang sangat besar.
  • Kedua-duanya dengan pernyataan terbuka boleh bersarang dalam baris yang sama seperti dengan open('C:/test/test.csv','r') sebagai csvinput, open('C:/test/output.csv', 'w') sebagai csvoutput:.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Skrip Python yang Melangkau Baris Apabila Menambah Lajur Baharu pada Fail CSV?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn