jueves, 18 de septiembre de 2014

Tutorial de Python parte 12 - sys.argv pasar argumentos en línea de comandos




A continuación veremos otro aspecto importante cuando trabajamos con Python en programas que son ejecutados a través de la consola. Poder controlar los argumentos pasados a través de la línea de comando es algo que podremos controlar a través del módulo sys y el array list argv.

sys es un módulo que proporciona acceso a algunas de las variables utilizadas o mantenidas por el intérprete y a funciones que interactúan constantemente con el intérprete de Python.

argv es un array list que contiene todos los argumentos pasados en la línea de comandos.

print("Argumentos pasados en la linea de comandos")
print(sys.argv) #Regresa todos los argumentos pasados en la linea de comandos


El primer argumento es el script .py que se está ejecutando y lo podemos identificar de la siguiente forma ...

#sys.argv[0] regresa el nombre del script .py
print("Script python ejecutandose ...", sys.argv[0])

Podemos pasarle más argumentos y obtener que contiene dicho argumento, por ejemplo, en el siguiente programa, a demás, del script .py, pasaremos dos argumentos más que nos permitirán realizar una suma. Como vimos en el capítulo anterior controlaremos la ejecución de errores con try-except para comprobar si los argumentos son del formato numérico.

Pasando argumentos a la línea de comandos, suponiendo que el script se llama argv.py ...

argv.py 10 10

Código para realizar la suma con los argumentos pasados ...

numero1 = sys.argv[1] #segundo argumento en la linea de comandos
numero2 = sys.argv[2] #tercer argumento en la linea de comandos

try:
 total = float(numero1) + float(numero2)
 print("La suma total de", numero1, "y", numero2, "es igual a", total)
except ValueError:
 print("Los argumentos para sumar deben de ser en formato numerico")