Heim > Artikel > Backend-Entwicklung > Warum verarbeitet mein Python-Code die Kopfzeile in einer CSV-Datei, anstatt sie zu überspringen?
Problem:
In Python wird eine CSV-Datei verarbeitet , aber die erste Zeile (Kopfzeile) wird geändert statt ausgeschlossen.
Code in Frage:
<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>
Problem:
Das Initialisieren der Variable „row“ auf 1 verhindert nicht, dass die Kopfzeile verarbeitet wird.
Lösung:
Um die Kopfzeile zu überspringen, verwenden Sie die next()-Funktion, um den Leser iterierbar um ein Element voranzutreiben. Der Rückgabewert von next() kann in diesem Fall ignoriert werden.
Geänderter Code:
<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>
Alternative Option:
Wenn die Kopfzeile in der Ausgabedatei gewünscht wird, kann sie vor der Schleife an write.writerow() übergeben werden:
<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>
Das obige ist der detaillierte Inhalt vonWarum verarbeitet mein Python-Code die Kopfzeile in einer CSV-Datei, anstatt sie zu überspringen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!