¿Cómo accedo a los argumentos de la línea de comando? [duplicar]
Utilizo Python para crear la configuración de mi proyecto, pero necesito ayuda para obtener los argumentos de la línea de comando.
Probé esto en la terminal:
$python myfile.py var1 var2 var3
En mi archivo Python, quiero usar todas las variables de entrada.
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']
Recomiendo encarecidamente argparse
el que viene con Python 2.7 y versiones posteriores.
El argparse
módulo reduce el código repetitivo y hace que su código sea más robusto, porque el módulo maneja todos los casos de uso estándar (incluidos los subcomandos), genera la ayuda y el uso para usted, verifica y desinfecta la entrada del usuario: todas las cosas de las que debe preocuparse cuando están utilizando sys.argv
el enfoque. Y es gratis (integrado).
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 parapython 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 el resultado de python prog.py 1
Como era de esperar:
2
Para obtener solo los argumentos de la línea de comando
(sin incluir el nombre del archivo Python)
import sys
sys.argv[1:]
Es [1:]
un segmento que comienza desde el segundo elemento (índice 1) y llega al final de la lista de argumentos. Esto se debe a que el primer elemento es el nombre del archivo Python y queremos eliminarlo.