Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa kod Python saya memproses baris pengepala dalam fail CSV dan bukannya melangkaunya?

Mengapa kod Python saya memproses baris pengepala dalam fail CSV dan bukannya melangkaunya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-30 20:49:02267semak imbas

Why is my Python code processing the header row in a CSV file instead of skipping it?

Melangkau Tajuk Semasa Memproses Fail CSV dengan Python

Masalah:

Dalam Python, fail CSV sedang diproses , tetapi baris pertama (baris pengepala) sedang diubah suai dan bukannya dikecualikan.

Kod dalam Soalan:

<code class="python">in_file = open("tmob_notcleaned.csv", "rb")
reader = csv.reader(in_file)
out_file = open("tmob_cleaned.csv", "wb")
writer = csv.writer(out_file)
row = 1

for row in reader:
    # Row processing logic

in_file.close()    
out_file.close()</code>

Isu:

Memulakan pembolehubah 'baris' kepada 1 tidak menghalang baris pengepala daripada diproses.

Penyelesaian:

Untuk melangkau baris pengepala, gunakan the next() berfungsi untuk memajukan pembaca yang boleh dilelang oleh satu item. Nilai pulangan next() boleh diabaikan dalam kes ini.

Kod Diubah Suai:

<code class="python">with open("tmob_notcleaned.csv", "rb") as in_file, open("tmob_cleaned.csv", "wb") as out_file:
    reader = csv.reader(in_file)
    next(reader, None)  # Skip the header row
    writer = csv.writer(out_file)

    for row in reader:
        # Row processing logic</code>

Pilihan Alternatif:

Jika baris pengepala dikehendaki dalam fail output, ia boleh dihantar kepada writer.writerow() sebelum gelung:

<code class="python">with open("tmob_notcleaned.csv", "rb") as in_file, open("tmob_cleaned.csv", "wb") as out_file:
    reader = csv.reader(in_file)
    headers = next(reader, None)  # Returns the header row or None if the input is empty

    if headers:
        writer.writerow(headers)

    for row in reader:
        # Row processing logic</code>

Atas ialah kandungan terperinci Mengapa kod Python saya memproses baris pengepala dalam fail CSV dan bukannya melangkaunya?. 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