Zeilenattribute in einer Textdatei effektiv vertauschen, wie?

1 Antwort

Ich sehe nicht, was das mit JSON zu tun hat. Das sieht doch wie CSV aus.

Man kann sowas mit regulären Ausdrücken und Suchen/Ersetzen (in beliebigem Editor) oder mit Tools wie sed zaubern, was ich aber in diesem Fall eher zu umständlich finde. Diese Regexes werden schnell unübersichtlich. Außerdem willst du hier offenbar noch Bedingungen in die Logik bringen...da kommt man eigentlich nur mit einem kleinen Programm sinnvoll weiter.

Hier ein Grundgerüst in Python, das deine Spaltenvertauschung ohne Bedingungen durchführt. Ich gehe davon aus, dass es wirklich CSV ist bzw. sein soll.

import csv, sys

with open('/tmp/test.txt') as infile:
    csvreader = csv.reader(infile)
    csvwriter = csv.writer(sys.stdout)

    for row in csvreader:
        if row:
            row[0], row[3] = row[3], row[0]
            csvwriter.writerow(row)
Rexxxxx 
Fragesteller
 22.02.2024, 18:05

Es ist json aber kann es ja in csv umwandeln. Dieses row müsste noch irgendwie näher definiert werden? Oder erkennt "row" bereits die ,"...",Struktur? (sorry in Python bin ich totaler Anfänger)

0
jo135  22.02.2024, 18:08
@Rexxxxx

Wenn deine Datei so aussieht:

"Text1","Text2","Text3","Text4","Text5","Text6"
"Text1","Text2","Text3","Text4","Text5","Text6"

...ist das garantiert kein gültiges JSON. Bestenfalls JSON-Fragmente.

Dieses row müsste noch irgendwie näher definiert werden?

Der CSV-Reader kümmert sich drum. Natürlich kann man die Zeilen auch naiv als Text einlesen und am Komma splitten, das wird dann aber scheitern, wenn in den Strings Kommata zu finden sind.

0
Rexxxxx 
Fragesteller
 22.02.2024, 18:28
@jo135

OK Schritt für Schritt was genau muss ich jetzt tun?

0