que programa idle ejecutar desde cómo consola compilar archivos archivo python command-line

programa - ¿Cómo accedo a los argumentos de la línea de comandos en Python?



ejecutar python en linux (7)

Utilizo python para crear la configuración de configuración de mi proyecto, pero necesito ayuda para obtener los argumentos de la línea de comandos.

Intenté esto en la terminal:

$python myfile.py var1 var2 var3

En mi archivo Python, quiero usar todas las variables que se ingresan.


Algunas cosas adicionales que puedo pensar.

Como @allsyed dijo sys.argv proporciona una lista de componentes (incluido el nombre del programa), por lo que si desea saber la cantidad de elementos que pasan a través de la línea de comandos, puede usar len () para determinarlo. En base a esto, puede diseñar mensajes de excepción / error si el usuario no pasó un número específico de parámetros.

Además, si busca una mejor manera de manejar los argumentos de la línea de comandos, le sugeriría que visite https://docs.python.org/2/howto/argparse.html


Código Python:

import sys # main param_1= sys.argv[1] param_2= sys.argv[2] param_3= sys.argv[3] print ''Params='', param_1, param_2, param_3

Invocación:

$python myfile.py var1 var2 var3

Salida:

Params= var1 var2 var3


Puede usar sys.argv para obtener los argumentos como una lista.

Si necesita acceder a elementos individuales, puede utilizar

sys.argv[i]

donde i es índice, 0 le dará el nombre de archivo de python que se está ejecutando. Cualquier índice después de eso son los argumentos pasados.


Recomiendo altamente argparse que viene con Python 2.7 y argparse posteriores.

El módulo argparse reduce el código de la placa de la caldera y hace que su código sea más robusto, ya que el módulo maneja todos los casos de uso estándar (incluidos los subcomandos), genera la ayuda y el uso para usted, verifica y sanea la entrada del usuario, todo lo que debe preocuparle cuando Usted está utilizando el enfoque sys.argv . Y es gratis (incorporado).

Aquí un pequeño ejemplo:

import argparse parser = argparse.ArgumentParser("simple_example") parser.add_argument("counter", help="An integer will be increased by 1 and printed.", type=int) args = parser.parse_args() print(args.counter + 1)

y la salida para python prog.py -h

usage: simple_example [-h] counter positional arguments: counter counter will be increased by 1 and printed. optional arguments: -h, --help show this help message and exit

y para python prog.py 1 como es de esperar:

2


Si lo llama así: $ python myfile.py var1 var2 var3

import sys var1 = sys.argv[1] var2 = sys.argv[2] var3 = sys.argv[3]

Similar a las matrices, también tiene sys.argv[0] que es siempre el directorio de trabajo actual.


El tutorial de Python lo explica :

import sys print(sys.argv)

Más específicamente, si ejecuta python example.py one two three :

>>> import sys >>> print(sys.argv) [''example.py'', ''one'', ''two'', ''three'']


import sys sys.argv[1:]

le dará una lista de argumentos (sin incluir el nombre del archivo python)