Enumerate in csv-datei

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
_corn_
User
Beiträge: 27
Registriert: Montag 8. November 2021, 09:04

Moin Zusammen,
ich bins mal wieder. Ich will im prinzip, dass in einer Csv-Datei die Reihen durchnummeriert werden, wobei der Header übersprungen wird.
Mein momentaner Ansatz sieht wie folgt aus:

Code: Alles auswählen

import csv

with open('Nummern.csv', 'r+', encoding='utf-8', newline='') as csv_datei:
    reader = csv.reader(csv_datei, delimiter=',')
    kopfzeile = next(reader)
    writer = csv.writer(csv_datei)
    for nr, zeile in enumerate(reader, 1):
        writer.writerow(['{},{}'.format(nr, zeile)])
Ich vermute mal das r+ dafür nicht der optimale Modus ist, mir ist jedoch erstmal nichts besseres eingefallen. Das Problem besteht momentan daraus, dass er nur eine Zeile Nummeriert und nicht alle. Des Weiteren wird diese natürlich hinten drangehängt und die Datei nicht überschrieben, was am r+ liegt, aber nicht so sein sollte.
Am Anfang sieht die Datei so aus:

Code: Alles auswählen

Beispiel1
Beispiel2
Beispiel3
Danach soll sie so aussehen:

Code: Alles auswählen

Beispiel1, 1
Beispiel2, 2
Beispiel3, 3
Wie kann ich das am besten umsetzten. Ich freue mich auf alle Antworten, Tipps und Anregungen.
Lg Corn 8)
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

Die Antwort habe ich doch bereits hier gegeben
Du brauchst zwei Dateien, eine, die gelesen wird, und eine, in die Du schreibst.
Oder Du liest den ganzen Inhalt der Datei in den Speicher und schreibst danach alles neu in die selbe Datei (was aber nicht empfehlenswert ist, weil Du bei Fehlern den Dateiinhalt unwiederbringlich überschrieben hast.
Und wenn Du csv-Dateien hast, dann formatiert man da nicht selbst Spalten mit Komma.
Antworten