Dejar de argparse de Globbing Filepath
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?
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.