3 Stimmen

Eine bestimmte Teilzeichenkette aus einer Zeile in Python herausziehen

Ich habe eine Datei mit vielen Zeilen, die so formatiert sind:

DIV ID=0X78800009 EXT="LOS ANGELES" TY=STANDARD OWN=0X74400002 ABBR=LA

Ich muss den EXT-Wert herausziehen, aber nur den Teil in Anführungszeichen. Ich bin derzeit mit diesem:

for line in file:
    if sub in line:
        extlist.append([item[4:] for item in line.split() if item.startswith('EXT=')].pop())

Aber es wird nur der "LOS"-Teil von LOS ANGELES an idlist angehängt. Ich bin ein wenig neu in Python, aber gibt es eine Möglichkeit, wrap item[4:] en str(item[4:]) und verwenden String-Funktionen um den Wert zu extrahieren, den ich brauche?

Beachten Sie, dass der Text im EXT-Feld unterschiedlich lang ist und es sich um zufällige Städtenamen handelt.

4voto

Josiah Punkte 3136

Reguläre Ausdrücke

>>> import re
>>> myString = 'DIV ID=0X78800009 EXT="LOS ANGELES" TY=STANDARD OWN=0X74400002 ABBR=LA'
>>> re.search('EXT="(.+?)"',myString).group(1)
'LOS ANGELES'

2voto

Levon Punkte 134187

Wenn Sie sein können sicher dass keine weiteren doppelten Anführungszeichen in Ihrer Zeile stehen, dann funktioniert dieser einfache Ansatz:

s='DIV ID=0X78800009 EXT="LOS ANGELES" TY=STANDARD OWN=0X74400002 ABBR=LA'

s.split('"')[1]
'LOS ANGELES'

Beachten Sie, dass die Verwendung einer regulärer Ausdruck ist ein flexiblerer/robusterer Weg, dies zu finden, wenn die oben genannten Einschränkungen nicht gelten.

Ansonsten ist dies eine Möglichkeit, das Problem im Sinne der "Einfach ist besser als komplex". (Das Zen der Python).

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X