me gustaría analizar una cadena como esta:Python, cómo analizar cadenas para parecerse sys.argv
-o 1 --long "Some long string"
en esto:
["-o", "1", "--long", 'Some long string']
o similar.
Esto es diferente de getopt, o optparse, que comienza con la entrada analizada sys.argv (como la salida que tengo más arriba). ¿Hay una manera estándar de hacer esto? Básicamente, esto es "dividir" al mantener unidas las cuerdas entrelazadas.
Mi mejor función hasta el momento:
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]
Mi verdadero olvido revelado: http://stackoverflow.com/questions/92533, me tiene usando shlex.split. Claramente, simplemente me olvidé de eso. –
Si lo que realmente necesita es "procesar opciones" y no solo "analizar cadenas en la línea de comandos", podría considerar http://docs.python.org/2/library/argparse.html –