Pregunta

Estoy usando Python Argparse con la siguiente definición de argumento:

parser.add_argument('path', nargs=1, help='File path to process')

Pero cuando entro en mi comando con un wildcard argumento, argparse Globa todas las rutas de archivo y termina con un error.

Como lo consigo argparse ¿No para globar los archivos?

¿Fue útil?

Solución

¿Cómo hago que Argparse no sea a globar los archivos?

No lo haces.

Obtienes el caparazón para que deje de globo.

Sin embargo. Pensemos por un momento.

Estás diciendo esto en tu código

parser.add_argument('path', nargs=1, help='File path to process')

Pero en realidad estás proporcionando tarjetas salvajes cuando lo ejecutas.

Uno de esos dos está mal. Deje de proporcionar tarjetas salvajes en el tiempo de ejecución o arregle Argparse para permitir múltiples nombres de archivo.

Otros consejos

El caparazón está expandiendo el argumento comodín antes argparse tiene la oportunidad de verlo. Ponga citas alrededor del argumento comodín para evitar que el caparazón lo expanda.

Más tarde podrías realizar la expansión comodín con Glob.glob.

El globo es realizado por su caparazón, no por el módulo Argparse. impresión sys.argv Al principio y verá lo que Argparse obtiene como entrada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top