que posicional pasar parametros parametro funciones funcion entrada ejecutar consola con comandos argumentos python python-2.7 argparse

posicional - pasar variables de php a python



Imprimir argumentos de línea de comandos con argparse? (2)

Si ejecuta argparse dentro de otro script de Python , como cuando lo prueba dentro de unittest , al imprimir sys.argv solo se imprimirán los argumentos del script principal, por ejemplo:

[''C: / eclipse / plugins / org.python.pydev_5.9.2.201708151115 / pysrc / runfiles.py'', ''C: / eclipse_workspace / test_file_search.py'',''port '','' 58454 '','' - verbosidad '','' 0 '']

En este caso, debe usar vars para iterar sobre argparse args:

parser = argparse.ArgumentParser(... ... args = parser.parse_args() for arg in vars(args): print arg, getattr(args, arg)

Gracias a: https://stackoverflow.com/a/27181165/658497

Estoy usando argparse para analizar los argumentos de la línea de comandos.

Para ayudar a la depuración, me gustaría print una línea con los argumentos a los que se llamó con el script de Python. ¿Hay una manera simple de hacer esto dentro de argparse ?


ArgumentParser.parse_args por defecto toma los argumentos simplemente de sys.argv . Entonces, si no cambia ese comportamiento (pasando algo más a parse_args ), simplemente puede imprimir sys.argv para obtener todos los argumentos pasados ​​al script de Python:

import sys print(sys.argv)

Alternativamente, también puedes imprimir el espacio de nombres que devuelve parse_args ; De esa manera, obtienes todos los valores en la forma en que el analizador de argumentos los interpretó:

args = parser.parse_args() print(args)