Articles of argparse

importar un script de Python desde otro script y ejecutarlo con argumentos

Tengo una secuencia de comandos de Python que se ha empaquetado como una secuencia de comandos de línea de comandos (dbtoyaml.py en Pyrseas desde que me preguntas). Estoy ejecutando otro script de Python desde el que quiero llamar a este script. ¿No hay manera de importar el módulo y rellenar artificialmente los argumentos requeridos de […]

Configurando opciones de variables de entorno al usar argparse

Tengo un script que tiene ciertas opciones que se pueden pasar en la línea de comandos o desde variables de entorno. El CLI debe tener prioridad si ambos están presentes, y se produce un error si no se establece ninguno. Podría verificar que la opción esté asignada después del análisis, pero prefiero dejar que argparse […]

python argparse – opcional adjuntar argumento con opciones

Tengo un script donde le pido al usuario una lista de acciones predefinidas para realizar. También quiero la posibilidad de asumir una lista particular de acciones cuando el usuario no define nada. Sin embargo, parece que tratar de hacer ambos juntos es imposible. cuando el usuario no da argumentos, recibe un error de que la […]

¿Cómo responde argparse (y el optparse en desuso) a la pulsación de la tecla ‘tab’ después del nombre del progtwig python, en bash?

He probado optcomplete trabajando con el módulo optparse . Su ejemplo es un archivo simple para que pueda hacer que funcione. También lo probé usando el módulo argparse ya que el anterior está en desuso. Pero realmente no entiendo cómo y por quién se llama al progtwig Python en las pulsaciones de tabs. Sospecho que […]

¿Cómo creo un espacio de nombres de Python (valor de argparse.parse_args)?

Para probar de forma interactiva mi script de Python, me gustaría crear un objeto de Namespace , similar a lo que sería devuelto por argparse.parse_args() . La forma obvia, >>> import argparse >>> parser = argparse.ArgumentParser() >>> parser.parse_args() Namespace() >>> parser.parse_args(“-a”) usage: [-h] : error: unrecognized arguments: – a Process Python exited abnormally with code […]

Quiero que Python argparse lance una excepción en lugar del uso

No creo que esto sea posible, pero quiero manejar las excepciones de argparse. Por ejemplo: import argparse parser = argparse.ArgumentParser() parser.add_argument(‘–foo’, help=’foo help’, required=True) try: args = parser.parse_args() except: do_something() Cuando lo ejecuto: $ myapp.py usage: myapp –foo foo myapp: error: argument –foo is required Pero quiero que caiga en la excepción en su lugar.

Argparse: cómo manejar el número variable de argumentos (nargs = ‘*’)

Pensé que nargs=’*’ era suficiente para manejar un número variable de argumentos. Aparentemente no lo es, y no entiendo la causa de este error. El código: p = argparse.ArgumentParser() p.add_argument(‘pos’) p.add_argument(‘foo’) p.add_argument(‘–spam’, default=24, type=int, dest=’spam’) p.add_argument(‘vars’, nargs=’*’) p.parse_args(‘1 2 –spam 8 8 9’.split()) Creo que el espacio de nombres resultante debería ser Namespace(pos=’1′, foo=’2′, spam=’8′, […]

argparse: identifica qué subparser se usó

Creo que esto debe ser fácil pero no lo entiendo. Supongamos que tengo el siguiente analizador arparse: import argparse parser = argparse.ArgumentParser( version=’pyargparsetest 1.0′ ) subparsers = parser.add_subparsers(help=’commands’) # all all_parser = subparsers.add_parser(‘all’, help=’process all apps’) # app app_parser = subparsers.add_parser(‘app’, help=’process a single app’) app_parser.add_argument(‘appname’, action=’store’, help=’name of app to process’) ¿Cómo puedo identificar […]

Mostrar mensaje de ayuda con python argparse cuando se llama al script sin ningún argumento

Esto podría ser simple. Supongamos que tengo un progtwig que utiliza argparse para procesar argumentos / opciones de línea de comandos. A continuación se imprimirá el mensaje de ‘ayuda’: ./myprogram -h o: ./myprogram –help Pero, si ejecuto el script sin ningún tipo de argumentos, no hace nada. Lo que quiero que haga es mostrar el […]

Importando variables desde un objeto de espacio de nombres en Python

Digamos que tengo un argumento de espacio de nombres que parser.parse_args() llamar a parser.parse_args() , que analiza los argumentos de la línea de comandos. ¿Cómo puedo importar todas las variables de este espacio de nombres a mi espacio de nombres actual? p.ej parser.add_argument(‘-p’, ‘–some_parameter’, default=1) args = parser.parse_args() # … code to load all variables […]