csv-Datei, in 3. und 4. Spalte Datum verändern

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
Cybertroniker
User
Beiträge: 1
Registriert: Freitag 1. Juli 2022, 09:36

Zuerst mal Hallo,

bin ein Newbie (erster Kontakt mit Python überhaupt) und kein Programmierer - ideale Bedingungen also :)

Problem:
Mein Boss hat mir die Aufgabe übertragen, bei einer csv-Datei die 3. und 4. Spalte zu verändern.
Konkret ist das eine lange csv-Datei, in Spalte 3 und 4 steht ein Datum im Format Monat/Tag/Jahr (2-stellig, us-en).
Dies soll nun im Format tt.mm.jjjj verändert werden. (deutsch).
Die Datei hat auch einen Header.
Habe dafür das Wochenende Zeit und habe keinen blassen Schimmer, wie ich das anstellen soll.
Bin schon darauf eingestellt, am Montag "habt acht" zu stehen, da ich mir nicht vorstellen kann, von 0 auf dieses Ergebnis zu kommen.

Die Datei ist so aufgebaut: (Erste Zeile Header, Spalten sind mit einem Komma getrennt und haben kein Leerzeichen nach dem Komma)
Text1,Text2,Datum1,Datum2,Text3,Text4
abcd,efgh,05/24/22,06/21/22,ijkl,mnop

Natürlich habe ich in meiner Verzweiflung gegoogelt, jedoch bin ich auf keine Lösung gestoßen.
Als Editor verwende ich Visual Studio Code, das läuft mal soweit (eine print-Ausgabe funktioniert schon mal)

Vom Ansatz her könnte ich mir Vorstellen, dass ich die Datei zeilenweise einlese, die erste Zeile so belasse und in eine neue csv-Datei schreibe und ab ab Zeile2 das Datum ändere und an die neue csv-Datei anhänge. Von der Theorie zur Praxis ist trotzdem ein starker Sprung.
Es muss in Python3 gemacht werden, da habe ich leider keine andere Möglichkeit.

Natürlich habe ich mir schon einige Beispiele angesehen, jedoch weiß ich nicht, was ich includen muss, etc...
Bin echt am verzweifeln und erbitte Hilfe.
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

Dein Arbeitsvertrag sieht also Wochenendarbeit vor, ansonsten ist Freizeit Freizeit und Arbeit ist Arbeit.

In Python wird nichts "included", sondern importiert, und zum Verarbeiten von CSV, am besten das csv-Modul.
Zum Parsen von Datum gibt es datetime.datetime.strptime, und zum Formatieren im gewünschen Format entsprechende Formatangaben.
Am besten arbeitest Du erst einmal ein Grundlagentutorial durch, damit Du die Grundkenntnisse drauf hast.
Benutzeravatar
__blackjack__
User
Beiträge: 13114
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Das kann man doch mit einem kleinen AWK-Skript lösen. 😀

Code: Alles auswählen

#!/usr/bin/awk -f

function convert_date(old, _parts) {
    split(old, _parts, "/")
    return _parts[2] "." _parts[1] ".20" _parts[3]
}

BEGIN {
    FS=","
    OFS=FS
}

FNR == 1 {
    print
    next
}

{
    $3=convert_date($3)
    $4=convert_date($4)
    print
}
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten