Kopfzeile in der CSV-Datei, die jede zweite Zeile druckt

Hallo Freund

Ich habe dieses Problem viel zu lange bearbeitet, bitte erklären Sie mir, warum sich der Header in meiner Ausgabe-CSV immer wieder wiederholt.

Ich habe eine CSV-Eingabe mit diesen Daten:

  1. Name, Haus
  2. "Abbott, Hannah", Hufflepuff
  3. "Bell, Katie", Gryffindor
  4. „Knochen, Susan“, Hufflepuff
  5. "Stiefel, Terry", Ravenclaw

Das Problem erfordert das Umkehren des Nach- und Vornamens, das Trennen des Namens in zwei Spalten und das Erstellen eines neuen Headers mit 3 Spalten für die CSV-Ausgabe. Hier ist, was ich habe:

    while True:
        try:
            # open file
            with open(sys.argv[1]) as file:
                # make reader
                reader = csv.reader(file)
                # skip first line (header row)
                next(reader)
                # for each row
                for row in reader:
                    # identify name
                    name = row[0]
                    # split at ,
                    name = name.split(", ")
                    # create var last and first, identify var house
                    last = name[0]
                    first = name[1]
                    house = row[1]


                    # writing the new csv
                    with open(sys.argv[2], "a") as after:
                        writer = csv.DictWriter(after, fieldnames=["first", "last", "house"])

                        # HEADER ONLY NEEDS TO OCCUR ONCE
                        writer.writeheader()
                        writer.writerow({"first": first, "last": last, "house": house})
                sys.exit(0)

meine Ausgabe csv:

  1. erstes, letztes, haus
  2. Hannah, Abbott, Hufflepuff
  3. erstes, letztes, haus
  4. Katie, Bell, Gryffindor
  5. erstes, letztes, haus
  6. Susan, Knochen, Hufflepuff

Ich habe versucht, die While-Schleife zu entfernen, Einzüge zu entfernen und einzurücken und manuell eine Zeile mit den Header-Namen zu schreiben (was zu Fehlern führte). Bitte helfen Sie. Vielen Dank!

Ahmed

Sie können eine Variable hinzufügen, die festlegt, ob eine Kopfzeile gedruckt wurde oder nicht, zwrite_header

while True:
    try:
        write_header = True
        # open file
        with open(sys.argv[1]) as file:
            # make reader
            reader = csv.reader(file)
            # skip first line (header row)
            next(reader)
            # for each row
            for row in reader:
                # identify name
                name = row[0]
                # split at ,
                name = name.split(", ")
                # create var last and first, identify var house
                last = name[0]
                first = name[1]
                house = row[1]


                # writing the new csv
                with open(sys.argv[2], "a") as after:
                    writer = csv.DictWriter(after, fieldnames=["first", "last", "house"])

                    # HEADER ONLY NEEDS TO OCCUR ONCE
                    if write_header:
                        writer.writeheader()
                        write_header = False
                    writer.writerow({"first": first, "last": last, "house": house})
            sys.exit(0)

Sehen Sie, wie ich verwendet habewrite_header

Andererseits können Sie Ihren Code umgestalten, um den CSV-Writer vor der forSchleife zu öffnen, Header dort zu schreiben und dann Werte wie jetzt zu schreiben, ohne die Datei jedes Mal neu öffnen zu müssen, wenn Sie eine Zeile schreiben möchten

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

So überspringen Sie die erste Zeile einer CSV-Datei und machen die zweite Zeile zur Kopfzeile

Der Header wiederholt jede zweite Zeile beim Schreiben in eine CSV-Datei

Der Scanner überspringt jede zweite Zeile aus der Datei

Ersetzen Sie jede zweite Wortinstanz in jeder Zeile der Datei

Lesen Sie die zweite Zeile aus der CSV-Datei in Python

Teilen Sie die Datei in jede zweite Zeile und formatieren Sie die Ergebnisse als Tabelle

np.loadtxt () Wie lade ich jede zweite Zeile aus der txt-Datei? Python

Wie überspringe ich die zweite Zeile der CSV-Datei, während die erste Zeile als Spaltennamen mit read_csv beibehalten wird?

Kopieren Sie die zweite Zeile aus allen CSV-Dateien (8000 Dateien), die sich in einem Ordner befinden, und speichern Sie sie in einer neuen CSV-Datei einschließlich Kopfzeile

Fügen Sie Werte in die zweite Zeile der CSV-Datei ein, die sich auf die erste Zeile im ksh-Skript beziehen

SQL zählt die zweite Spalte für jede eindeutige Zeile der ersten Spalte

Array druckt nicht in die zweite Zeile meines zweiten Arbeitsblatts?

Wie verschiebt man jede zweite Zeile in die Zeile davor in R?

Überspringen Sie die zweite Zeile des Datenrahmens, während Sie die CSV-Datei in Python lesen

PHP sscanf druckt nicht die erste Zeile in der Datei, sondern die folgenden Zeilen

Einlesen von CSVs und Schreiben des Namens der CSV-Datei in jede Zeile der CSV

Lesen Sie die zweite Zeile einer CSV-Datei in ein Diktat ein

Zeile für Zeile eine txt-Datei lesen, wobei jede zweite Zeile übersprungen und die Ausgabe mit R als Datenrahmen gespeichert wird

Warum druckt mein Skript nicht die erste Zeile der Datei hello.txt?

Verhindern Sie, dass Pandas read_csv die erste Zeile als Kopfzeile der Spaltennamen behandelt

So ersetzen Sie das zweite Vorkommen einer Zeile, die mit etwas in der Datei beginnt

Der Scanner scannt die zweite Zeile nicht

Der Titel fällt in die zweite Zeile

Hängen Sie jede Zeile in der Datei an

Schreiben von Zahlenreihen in die CSV-Datei, wenn sie mit der Kopfzeile übereinstimmen

Sortieren Sie die Zeilen in der CSV-Datei ohne Kopfzeile und erste Spalte

Suchen der Zeilennummer für die Kopfzeile in einer CSV-Datei / einem Pandas-Datenrahmen

Nachrichtenempfangsprogramm, das nur jede zweite Nachricht druckt

Jede zweite Zeile in Pandas unterteilen?

TOP Liste

  1. 1

    So legen Sie mit dem Interface Builder unterschiedliche führende Speicherplätze für unterschiedliche Geräte fest

  2. 2

    Wie konvertiere ich einen Vektor von Bytes (u8) in eine Zeichenfolge?

  3. 3

    Wie kann ich in SCSS mehrere Klassen zu einer einzigen kombinieren?

  4. 4

    Eclipse Oxygen - Projekte verschwinden

  5. 5

    Wie konvertiert man einen Datenrahmen im langen Format in eine Liste mit einem geeigneten Format?

  6. 6

    Wie kann ich den Kaskadenmodus global einstellen?

  7. 7

    Wie erstelle ich einen neuen übergeordneten Knoten außerhalb der .ref (/ path) in der Firebase-Echtzeitdatenbank mithilfe von Cloud-Funktionen (Typescript)?

  8. 8

    So erhalten Sie eine gleichmäßige Höhe für alle Eingabefelder

  9. 9

    Python: Spalten mit demselben Namen zusammenführen, wobei der Mindestwert beibehalten wird

  10. 10

    Speichern Sie ein MPAndroidChart-Diagramm in einem Bild, ohne es in einer Aktivität anzuzeigen

  11. 11

    Gruppieren Sie Datenrahmenspalten nach ihrem Datum (die Spaltentitel enthalten) und fassen Sie die Instanzen von Einsen und Nullen in R . zusammen

  12. 12

    ElasticSearch BulkShardRequest ist aufgrund von org.elasticsearch.common.util.concurrent.EsThreadPoolExecutor fehlgeschlagen

  13. 13

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  14. 14

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  15. 15

    Wie wählt man Unterschiede mit drei Tabellen aus?

  16. 16

    Ärgerliches Problem mit yaml, das ich nicht lösen kann

  17. 17

    Wie kann ich meine Tabelle abfragen, um sie in mySQL nach 2 Feldern zu gruppieren?

  18. 18

    So berechnen Sie die Verfügbarkeit von Anwendungen (SLA)

  19. 19

    Fügen Sie eine weitere Schaltfläche zu gwt Suggest Box hinzu

  20. 20

    Modbus Python Schneider PM5300

  21. 21

    Wie kann eine gleichmäßige Lastverteilung in ElasticSearch mit Indizes mit unterschiedlicher Anzahl von Shards erreicht werden?

heißlabel

Archiv