Ich möchte eine Zeichenfolge wie folgt analysieren:Python, wie Zeichenfolgen analysieren wie sys.argv aussehen
-o 1 --long "Some long string"
in diese:
["-o", "1", "--long", 'Some long string']
oder ähnliches.
Das ist anders als entweder getopt oder optparse, die starten mit sys.argv geparsten Eingang (wie die Ausgabe, die ich oben habe). Gibt es einen Standard Weg dies zu tun? Im Grunde ist dies "Teilen", während in Anführungszeichen gesetzte Strings beibehalten werden.
Meine beste Funktion bisher:
import csv
def split_quote(string,quotechar='"'):
'''
>>> split_quote('--blah "Some argument" here')
['--blah', 'Some argument', 'here']
>>> split_quote("--blah 'Some argument' here", quotechar="'")
['--blah', 'Some argument', 'here']
'''
s = csv.StringIO(string)
C = csv.reader(s, delimiter=" ",quotechar=quotechar)
return list(C)[0]
Meine eigene wahre Vergesslichkeit aufgedeckt: http://stackoverflow.com/questions/92533, hat mich mit shlex.split. Klar habe ich es einfach vergessen. –
Wenn das, was Sie wirklich brauchen, ist "Optionen zu verarbeiten" und nicht nur "Strings auf Kommandozeile zu analysieren", könnten Sie http://docs.python.org/2/library/argparse.html –