jueves, 29 de septiembre de 2016

Programación Python XVI (ejecutar python desde la línea de comandos)

Este es otro post dedicado a programación en Python, encontraréis todos los posts de este tipo juntos en el apartado Programación del blog. Y si queréis aprender más podéis visitar la web oficial de www.python.org

En este post vamos a ver como ejecutar un programa en python desde la línea de comandosEn el primer post de python vimos como se podían ejecutar programas de python desde la línea de comandos Programación Python para RaspberryPi, Sin embargo hoy vamos a ver como crear un pequeño programa al que le pasaremos unos parámetros y lo ejecutaremos desde la línea de comandos de Raspbian




1 Crear un programa en Python

En los anteriores posts ya hemos visto muchos ejemplos de código así que vamos a crear un programa y guardarlo en un archivo para luego ejecutarlo. En primer lugar abrid el IDLE de python y luego abrid un nuevo archivo (tal y como vimos en el primer post Programación Python para RaspberryPi) añadiremos el siguiente código

# importamos el modulo sys
import sys
# creamos bucle para mostrar los argumentos enviados
for (i,value) in enumerate (sys.argv):
    print("arg: %d %s " % (i,value))

ahora guardaremos el fichero en una ubicación conocida por ejemplo con el nombre programa_argumentos.py.



2 Ejecutar un programa Python desde la línea de comandos



Ahora tenemos que ejecutar el programa desde la línea de comandos. Para ello abriremos una ventana de línea de comandos (si no sabéis como podéis consultar el post Programación Python para RaspberryPi. Y ahora ejecutaremos el programa pasando los argumentos que queramos en la línea de comandos, pondremos en primer lugar la orden de ejecución de python, en segundo lugar la ruta con el archivo que contiene el programa que ejecutaremos, en tercer lugar los parametros separados por un espacio. Atención para la versión de Python2 usaremos

python /user/desktop/programa_argumentos.py 1 a 2 b 3 c

para la versión de Python3 usaremos

python3 /user/desktop/programa_argumentos.py 1 a 2 b 3 c

al ejecutar esta orden (presionando intro en el teclado) veremos por pantalla como se enumeran todos y cada uno de los parámetros que el sistema ha pasado al programa de python. Podéis usar este código para recuperar los parámetros y ejecutar cualquier código. El primer parámetro en la posición 0 es el nombre del programa que ejecutamos, y luego vienen el resto de los parámetros. 
En este ejemplo sys.argv es un array o lista en el que se guardan los parámetros que el sistema ha pasado a python. en el siguiente post podéis ver todo lo que se puede hacer con una lista en python

http://frambuesa-pi.blogspot.com.es/2016/06/python-vii-listas.html

Por otro lado el módulo sys tiene muchas otras opciones que podéis descubrir en la web oficial de python. 

https://docs.python.org/3.4/library/sys.html#module-sys

Espero que os haya servido de ayuda.