Heim  >  Artikel  >  Backend-Entwicklung  >  Warum verarbeitet mein Python-Code die Kopfzeile in einer CSV-Datei, anstatt sie zu überspringen?

Warum verarbeitet mein Python-Code die Kopfzeile in einer CSV-Datei, anstatt sie zu überspringen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-30 20:49:02267Durchsuche

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

Überspringen von Headern bei der Verarbeitung einer CSV-Datei mit Python

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn