vorrei analizzare una stringa come questa:Python, come analizzare le stringhe per assomigliare sys.argv
-o 1 --long "Some long string"
in questo:
["-o", "1", "--long", 'Some long string']
o simili.
Questo è diverso da getopt o optparse, che avvia con input analizzato sys.argv (come l'output sopra riportato). C'è un modo standard per farlo? Fondamentalmente, questo è "splitting" pur mantenendo le stringhe citate insieme.
Il mio migliore funzione finora:
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]
La mia vera dimenticanza ha rivelato: http://stackoverflow.com/questions/92533, mi ha usato shlex.split. Chiaramente me ne sono dimenticato. –
Se ciò di cui hai realmente bisogno è "elaborare le opzioni" e non solo "analizzare le stringhe sulla riga di comando", potresti prendere in considerazione http://docs.python.org/2/library/argparse.html –