Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ein Python-Skript behoben werden, das beim Hinzufügen einer neuen Spalte zu CSV-Dateien Zeilen überspringt?

Wie kann ein Python-Skript behoben werden, das beim Hinzufügen einer neuen Spalte zu CSV-Dateien Zeilen überspringt?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-21 21:03:30376Durchsuche

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

So fügen Sie CSV-Dateien in Python eine neue Spalte hinzu

Problembeschreibung

Sie haben mehrere CSV-Dateien, die Daten wie diese enthalten:

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

Sie möchten allen diesen Dateien eine neue Spalte mit dem Namen „Berry“ hinzufügen, damit die Ausgabe wie folgt aussieht:

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

Ihr aktuelles Python-Skript funktioniert jedoch nicht richtig . Es überspringt jede Zeile und füllt die neue Spalte nur mit dem Wert „Berry“.

Lösung

Um dieses Problem zu lösen, müssen Sie den Code ändern, um stattdessen die Funktion next() zu verwenden row0 = r.next() (für Python 3 verwenden Sie reader = csv.reader(csvinput)). Der aktualisierte Code:

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

Hinweise:

  • Der Parameter „lineterminator“ ist auf „n“ gesetzt, um doppelte Abstände in der Ausgabedatei zu vermeiden.
  • Eine Liste wird verwendet, um alle Zeilen anzuhängen und sie auf einmal mit Writerows zu schreiben. Dies ist möglicherweise nicht für extrem große Dateien geeignet.
  • Die beiden mit open-Anweisungen können in derselben Zeile verschachtelt werden wie mit open('C:/test/test.csv','r') as csvinput, open('C:/test/output.csv', 'w') als csvoutput:.

Das obige ist der detaillierte Inhalt vonWie kann ein Python-Skript behoben werden, das beim Hinzufügen einer neuen Spalte zu CSV-Dateien Zeilen überspringt?. 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