Quiero tener algunas opciones en el módulo argparse como --pm-export
, sin embargo, cuando trato de usarlo como args.pm-export
me sale el error de que no existe el atributo pm
. ¿Cómo puedo evitar este problema? ¿Es posible tener -
en opciones de línea de comando?Tener opciones en argparse con un guión
Respuesta
Como indicated in the argparse
docs:
Para las acciones argumento opcional, el valor de dest normalmente se infiere de las cadenas de opciones. ArgumentParser genera el valor de dest tomando la primera cadena de opción larga y quitando la cadena
--
inicial. Cualquier-
caracteres internos se convertirán en personajes_
para asegurarse de que la cadena es un nombre de atributo válido
Por lo tanto usted debe utilizar args.pm_export
.
Los guiones se convierten en rayas:
import argparse
pa = argparse.ArgumentParser()
pa.add_argument('--foo-bar')
args = pa.parse_args(['--foo-bar', '24'])
print args # Namespace(foo_bar='24')
Desafortunadamente, Dash-a-guión de reemplazo no funciona para positionalarguments (no el prefijo --
) como
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('logs-dir',
help='Directory with .log and .log.gz files')
parser.add_argument('results-csv', type=argparse.FileType('w'),
default=sys.stdout,
help='Output .csv filename')
args = parser.parse_args()
print args
# gives
# Namespace(logs-dir='./', results-csv=<open file 'lool.csv', mode 'w' at 0x9020650>)
Por lo tanto, se debe utilizar el argumento 1'st a add_argument()
como nombre de atributo y metavar
kwarg a establecer cómo debería verse en la ayuda:
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('logs_dir', metavar='logs-dir',
nargs=1,
help='Directory with .log and .log.gz files')
parser.add_argument('results_csv', metavar='results-csv',
nargs=1,
type=argparse.FileType('w'),
default=sys.stdout,
help='Output .csv filename')
args = parser.parse_args()
print args
# gives
# Namespace(logs_dir=['./'], results_csv=[<open file 'lool.csv', mode 'w' at 0xb71385f8>])
El informe de error de Python correspondiente: http://bugs.python.org/issue15125. 'argparse' utiliza' setattr' y 'getattr', por lo que los nombres' dest' no tienen que ser nombres de atributo 'dot' válidos. El usuario también puede usar 'getattr'. – hpaulj
Me gustaría hacer 'positional_arg = getattr (analizador, 'posicional-arg')' –
Exactamente lo que necesitaba - Lo hice al revés con 'metavar' y no pude entender por qué no estaba funcionando. ¡Gracias! – dwanderson
- 1. Opciones de línea de comandos necesarias en Python usando argparse
- 2. ¿Puede tener un nombre de propiedad que contenga un guión
- 3. argparse conjuntamente con sys.argv en Python
- 4. Python argparse para manejar opciones numéricas arbitrarias (como HEAD (1))
- 5. Python argparse: Un montón de opciones resultados en ayuda fea salida
- 6. python argparse con dependencias
- 7. guión vs Dash: Reemplazar la rociada con un guión
- 8. tipos de ruta de directorio con argparse
- 9. ¿Por qué "_" (guión bajo) coincide con "-" (guión)?
- 10. entrada estándar opcional en Python con argparse
- 11. módulo Python con un guión o un guión (-) en su nombre
- 12. ¿Cómo combinar mensajes interactivos con argparse en python?
- 13. Python: argparse subcommand subcommand?
- 14. Guión Bash con menús gráficos
- 15. Deshabilitar abreviatura en argparse
- 16. Mecanismo estándar para tener opciones específicas del paquete en R?
- 17. Reemplazar el espacio con un guión bajo
- 18. Java expresión regular con un guión
- 19. ¿Es posible tener el guión Haml HTML generado por un asistente de visualización en Rails?
- 20. Crear argumentos ocultos con Python argparse
- 21. ¿Cómo tener una opción que habilite otras opciones en Opciones de programas Boost sin usar variables?
- 22. Argumentos posicionales múltiples con Python y argparse
- 23. Haciendo un JOptionPane con 4 opciones
- 24. python argparse - opcional anexar argumento con elecciones
- 25. submandato python argparse con dependencia y conflicto
- 26. Python argparse subargumentos opcionales
- 27. Dejar los argumentos intactos con argparse
- 28. argparse falta en python 3
- 29. html con guión atributos con asp.net mvc
- 30. Obtener el subcomando seleccionado con argparse
Solo para argumentos opcionales. Los necesarios para mantener sus guiones, por lo que requieren un guión bajo para que sean accesibles. – n00dle