Saltar a contenido
 No os perd谩is mi futuro contenido, seguidme en y Youtube 馃榿

Entrada por script

Hasta ahora todo lo que hemos hecho ha sido escribir c贸digo en el int茅rprete, pero los programas inform谩ticos no funcionan as铆. Se basan en escribir todas las instrucciones en ficheros llamados scripts (o guiones de instrucciones). Luego se env铆a este fichero al int茅rprete desde la terminal (si es un lenguaje interpretado como Python) y 茅ste ejecutar谩 todas las instrucciones en bloque.

A parte de ser la base de los programas, la gracia de los Scripts es que pueden recibir datos desde la propia terminal en el momento de la ejecuci贸n, algo muy 煤til para a帽adirles dinamismo.

Para poder crear y ejecutar scripts hace falta un editor y una terminal, por suerte Anaconda trae el editor Spyder y el int茅rprete es accesible a trav茅s de la terminal Anaconda Prompt, ambos programas accesibles desde Inicio (o con Anaconda Navigator si utiliz谩is Linux/MAC).

Script de prueba

Utilizando Spyder deber铆ais ser capaces de crear un fichero hola.py con este contenido:

Note

print("Hola, bienvenido a tu primer script")

Lo pod茅is guardar en el directorio que quer谩is, yo lo guardar茅 en una carpeta del disco, en C:\Scripts para tenerlo a mano.

A continuaci贸n para ejecutarlo abr铆ramos Anaconda Prompt y navegar铆amos con el comando cd (change directory) al directorio donde tenemos los scripts:

Note

cd C:\Scripts

Por 煤ltimo ejecutaremos el script pas谩ndolo al int茅rprete de python y veremos el resultado del print() en la terminal:

Note

python hola.py
Hola, bienvenido a tu primer script

Scripts con argumentos

Para poder enviar informaci贸n a un script y manejarla, tenemos que utilizar la librer铆a de sistema sys. En ella encontraremos la lista argv que almacena los argumentos enviados al script. Cread el siguiente script y ejecutadlo:

Note

import sys
print(sys.argv)
python argumentos.py
['argumentos.py']

Al ejecutarlo ver茅is que devuelve una lista con una cadena que contiene el nombre del script. Quedaros con la idea pues, de que el primer argumento de la lista sys.argv (sys.argv[0]) es el propio nombre del script.

Ahora intentad ejecutarlo de nuevo pasando algunos valores como n煤meros y cadenas de texto entre comillas dobles, todo separado por espacios:

Note

python argumentos.py 100 "Hola" 3.14
['argumentos.py', '100', 'Hola', '3.14']

Cada valor que enviamos al script durante la llamada se llama argumento e implica una forma de entrada de datos alternativa sin usar el input().

El siguiente ejemplo es un script que recibe dos argumentos: un texto y un n煤mero entero. Lo que hace es imprimir la cadena de texto tantas veces como le indiquemos en el n煤mero. Tomaos el tiempo necesario para analizar y entender cada l铆nea:

Note

import sys

# Comprobaci贸n de seguridad, ejecutar s贸lo si se reciben 2 argumentos reales
if len(sys.argv) == 3:
    texto = sys.argv[1]
    repeticiones = int(sys.argv[2])
    for r in range(repeticiones):
        print(texto)
else:
    print("Error - Introduce los argumentos correctamente")
    print('Ejemplo: escribir_lineas.py "Texto" 5')
python escribir_lineas.py "Hola Mundo!!!" 5
Hola Mundo!!!
Hola Mundo!!!
Hola Mundo!!!
Hola Mundo!!!
Hola Mundo!!!

脷ltima edici贸n: 25 de Septiembre de 2018