Logo Studenta

Argumentos mediante consola

¡Estudia con miles de materiales!

Vista previa del material en texto

Argumentos mediante la consola
Ignacio Vilieri
Primer Semestre de 2021
Usando sys.argv
1
Recap Funciones
I Recordemos una de las primeras funciones que definimos:
1 def kilometros_a_millas(d:float) -> float:
2 ''' Convierte una longitud en km a millas. [...]
'''
3 vr:float = d * 0.621371
4 return vr
5
6 print(kilometros_a_millas (123.4))
I Podemos guardar nuestro código como kilometros_a_millas.py
mediante:
I File > Save as
I Ahora bien, ¿cómo podríamos ejecutar nuestro programa desde la
línea de comandos?
La línea de comandos es una consola parecida a la de ipython, que
nos permite ejecutar programas en el sistema operativo de la
computadora (MacOS, Windows, Linux).
2
Línea de comandos
I Primero, abrimos nuestra línea de comandos.
I macOSmacOSmacOSmacOSmacOSmacOSmacOSmacOSmacOSmacOSmacOSmacOSmacOSmacOSmacOSmacOSmacOS: https://www.idownloadblog.com/2019/04/19/
ways-open-terminal-mac/.
I WindowsWindowsWindowsWindowsWindowsWindowsWindowsWindowsWindowsWindowsWindowsWindowsWindowsWindowsWindowsWindowsWindows: https:
//www.lifewire.com/how-to-open-command-prompt-2618089.
I LinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinuxLinux: https://maker.pro/linux/tutorial/
basic-linux-commands-for-beginners.
I Segundo, navegamos hasta llegar al directorio de trabajo en el cual
guardamos nuestro programa. Para ello podemos usar el comando
cd, que nos permite cambiar al directorio que queramos. La sintaxis
para ello es:
1 $ cd directorio\del\archivo
I Por ejemplo:
1 $ cd C:\Users\vilieri.i\Desktop
3
https://www.idownloadblog.com/2019/04/19/ways-open-terminal-mac/
https://www.idownloadblog.com/2019/04/19/ways-open-terminal-mac/
https://www.lifewire.com/how-to-open-command-prompt-2618089
https://www.lifewire.com/how-to-open-command-prompt-2618089
https://maker.pro/linux/tutorial/basic-linux-commands-for-beginners
https://maker.pro/linux/tutorial/basic-linux-commands-for-beginners
Línea de comandos
I Una vez que nos encontremos situados en el directorio en el que se
encuentra nuestro programa, podemos ejecutarlo usando uno de
estos comandos (dependiendo de cómo fue instalado Python en su
computadora):
1 $ python filename.py
1 $ python3 filename.py
I LinkLinkLinkLinkLinkLinkLinkLinkLinkLinkLinkLinkLinkLinkLinkLinkLink: https://realpython.com/run-python-scripts/
#how-to-run-python-scripts-using-the-command-line
I Siendo así, sería muy útil poder pasarle argumentos a nuestro
programa trabajando directamente desde la línea de comandos.
4
https://realpython.com/run-python-scripts/#how-to-run-python-scripts-using-the-command-line
https://realpython.com/run-python-scripts/#how-to-run-python-scripts-using-the-command-line
Argumentos en línea de comandos
I Para ello utilizaremos la lista argv de la biblioteca sys.
I sys.argv permite trabajar con “argumentos en línea de comandos”,
que son aquellos valores que son pasados a nuestro programa
cuando se ejecuta directo desde la consola.
I En este sentido, sys.argv devuelve una lista que contiene:
1. En la primera posición, el nombre de nuestro programa
2. En las posiciones subsiguientes, los argumentos que le compartamos
mediante consola
I El siguiente programa args.py ejemplifica el funcionamiento de
sys.argv:
1 import sys
2
3 print("Nuestro programa se llama", sys.argv [0])
5
Usando sys.argv
I Entonces, si ejecutamos por consola:
1 $ python args.py
2
3 > Nuestro programa se llama args.py
I Como mencionamos, el primer valor que se almacena en sys.argv es
el nombre de nuestro programa (en este caso llamado args.py)
I Genial! Pero, ¿cómo podemos ahora pasarle a nuestro programa
argumentos directo desde la línea de comandos?
I Para ello solo tenemos que indicarlos luego de elegir el programa a
ejecutar:
1 python filename.py [args del programa]
I LinkLinkLinkLinkLinkLinkLinkLinkLinkLinkLinkLinkLinkLinkLinkLinkLink: https:
//www.geeksforgeeks.org/how-to-use-sys-argv-in-python/
6
https://www.geeksforgeeks.org/how-to-use-sys-argv-in-python/
https://www.geeksforgeeks.org/how-to-use-sys-argv-in-python/
Ejecución
I Veámoslo aumentando el ejemplo anterior.
I Definamos ahora el programa args.py de la siguiente manera:
1 import sys
2
3 print("Nuestro programa se llama", sys.argv [0])
4 print("El 1er argumento es", sys.argv [1])
5 print("El 2do argumento es", sys.argv [2])
I Si ejecutamos nuevamente por consola incluyendo, por ejemplo, dos
argumentos:
1 $ python args.py 5 "utdt"
2
3 > Nuestro programa se llama args.py
4 > El 1er argumento es 5
5 > El 2do argumento es utdt
I ImportanteImportanteImportanteImportanteImportanteImportanteImportanteImportanteImportanteImportanteImportanteImportanteImportanteImportanteImportanteImportanteImportante: Nótese que los elementos en sys.argv son almacenados
en formato str, y por ende deberíamos convertirlos (dentro de
nuestro programa) al formato que necesitemos.
7
Uniendo todo
I Podemos entonces redefinir nuestro programa
kilometros_a_millas.py para que acepte argumentos directamente
desde la consola.
1 import sys
2
3 def kilometros_a_millas(d:float) -> float:
4 ''' Convierte una longitud en km a millas. [...]
'''
5 vr:float = d * 0.621371
6 return vr
7
8 km:float = float(sys.argv [1])
9 print(kilometros_a_millas(km))
I Recuerden que los elementos de sys.argv son almacenados como str
y por ende necesitamos convertir el formato de nuestro argumento,
en este caso, a float. (vea línea 8)
8
Wrap-up
I Finalmente, lo ejecutamos desde la línea de comandos y obtenemos
el resultado esperado:
1 $ python kilometros_a_millas.py 1.0
2
3 > 0.621371
I Veamos el paso a paso:
1. Ejecutamos nuestro programa desde la línea de comandos indicando
como argumento 1.0.
2. En nuestro programa:
2.1 Se importa la bilbioteca sys y se define la función
kilometros_a_millas
2.2 Se toma el argumento del programa (’1.0’) almacenado en
sys.argv[1] en formato str, se lo convierte a float, y se lo almacena
en la variable km.
2.3 Se ejecuta la función kilometros_a_millas tomando como
argumento el valor de km (el float 1.0) e imprime el resultado
obtenido.
3. Vemos por pantalla el resultado de nuestro programa.
9

Continuar navegando

Otros materiales