So fügen Sie eine neue Spalte zum Anfang der CSV-Datei?
Ich habe eine csv-Datei, in der ich 6 bis 8 Spalte.
Ex:
ID Test Description file-name module view path1 path2
Möchte ich hinzufügen neue Spalte (Node
) an den Anfang.
Ex:
Node ID Test Description file-name module view path1 path2
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wäre es ziemlich einfach zu tun, mit der
csv
ModulDictReader
undDictWriter
Klassen. Hier ist ein Beispiel, liest die alte Datei und schreibt den neuen Durchgang.Einen
DictReader
Instanz gibt jede logische Zeile oder eine Zeile der Datei als ein Wörterbuch, dessen Schlüssel den Feldnamen. Sie können explizit angeben, die Feldnamen, oder Sie können, Lesen Sie in der ersten Zeile der Datei, wie im Beispiel gezeigt.Du muss geben Sie den gewünschten Feldnamen beim erstellen einer
DictWriter
Instanz und die Reihenfolge der Feldnamen definiert die Reihenfolge, wie Sie angezeigt wird auf jede Zeile der Ausgabe-Datei. In diesem Fall wird der Feldname wird einfach Hinzugefügt, um Anfang der Liste mit den Namen der input-Datei — was auch immer Sie sein mögen.Wenn das der Inhalt der Eingabedatei:
Dies wäre der Inhalt der output-Datei nach dem ausführen des Skripts:
Beachten Sie, dass das hinzufügen der Daten für ein Feld in jeder Zeile mit
dict(row, Node='node %s' % node)
wie gezeigt funktioniert nur, wenn das Feld name ist ein gültiges Schlüsselwort-argument (d.h. gültige Python-id) — wieNode
.Gültige Bezeichner bestehen nur aus Buchstaben, Ziffern und Unterstrichen-aber nicht mit einer Ziffer oder Unterstrich, und nicht die Sprache Schlüsselwort wie Klasse, für, zurück, globalen, pass, drucken (in Python 2), oder erhöhen.
Um dieses Problem zu umgehen, wäre es notwendig, tun Sie es separat:
Können Sie das CSV-Modul zu Lesen, die in Ihrer CSV-Datei und schreiben Sie eine bearbeitete version mit einer angehängten Spalte. Denken Sie daran, dass das hinzufügen einer Spalte ist das hinzufügen eines zusätzlichen Eintrags an das Ende jeder Zeile.
Ein Beispiel der Ausgabe, die mit dem CSV-Modul (http://docs.python.org/library/csv.html)
delimiter=' '
ist etwas untypisch, um es milde auszudrücken.