ich aus einer Protokolldatei eine formatierte Zeichenfolge haben, die wie folgt aussieht:Python: Split von 1 oder mehr Vorkommen eines Begrenzungs
>>> a="test result"
Das heißt, der Test und das Ergebnis durch einige Räume aufgeteilt werden - es wurde wahrscheinlich mit einer formatierten Zeichenfolge erstellt, die test
einen konstanten Abstand gab.
Einfache Spaltung wird nicht den Trick:
>>> a.split(" ")
['test', '', '', '', ... '', '', '', '', '', '', '', '', '', '', '', 'result']
split(DELIMITER, COUNT)
einige unnötige Werte gelöscht:
>>> a.split(" ",1)
['test', ' result']
Dies half - aber natürlich ich wirklich brauchen:
['test', 'result']
Ich kann split()
gefolgt von map
verwenden, aber ich fragte mich, ob es einen pythonischen Weg gibt, es zu tun.
Danke,
Adam
UPDATE: Eine solche einfache Lösung! Danke euch allen.
Warum das funktioniert: a.split (None) ist ein Sonderfall, der in Python "auf einen oder mehrere Leerzeichen chars" bedeutet. re.split() ist die allgemeine Falllösung. –
Man muss str.split (None, maxsplit) verwenden, da die Funktion keine Schlüsselwortargumente akzeptiert. Ich wundere mich warum. – tbrittoborges
die Frage war, wie mit Trennzeichen + (ein oder mehrere) aufgeteilt werden. Sie antworten, dass eines der Leerzeichen als Trennzeichen verwendet wird, was nicht die richtige Antwort ist – Risinek