ich möchte Zeilen in ihre Bestandteile zerlegen, die so aufgebaut sind:
- attr1=wert1 attr2=wert2 attr3=wert3
Code: Alles auswählen
{'attr1': 'wert1', 'attr2': 'wert2', 'attr3': 'wert3'}
- attr1=wert1 attr2="wert2 mit Leerzeichen" attr3=wert3
Code: Alles auswählen
import csv
line = 'attr1=wert1 attr2="wert2 mit Leerzeichen" attr3=wert3'
for row in csv.reader([line], delimiter=' '):
print row
Code: Alles auswählen
['attr1=wert1', 'attr2="wert2', 'mit', 'Leerzeichen"', 'attr3=wert3']
- attr1=wert1 "attr2=wert2 mit Leerzeichen" attr3=wert3
Code: Alles auswählen
['attr1=wert1', 'attr2=wert2 mit Leerzeichen', 'attr3=wert3']
- attr1=wert1 "attr2=wert2 mit "Leerzeichen attr3=wert3
Code: Alles auswählen
['attr1=wert1', 'attr2=wert2 mit Leerzeichen', 'attr3=wert3']
Die Verwendung des csv-Moduls hat außerdem den Nachteil, dass man als Trennzeichen keinen regulären Ausdruck wie '\s+' verwenden kann, damit alternativ zum Leerzeichen auch Tabs als Trennzeichen vorkommen dürfen. Aber dies ist in diesem Fall verschmerzbar.
Wie kann ich die Zeilen splitten, ohne dass ich die Zeile zeichenweise einlese?
Gruß, Ingo