Rumah > Artikel > pembangunan bahagian belakang > Mengapa kod Python saya memproses baris pengepala dalam fail CSV dan bukannya melangkaunya?
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!