Acceso a la línea de órdenes (I)
En los programas que estamos haciendo trabajamos con ficheros cuyo nombre o bien está predeterminado o bien se pide al usuario por teclado durante la ejecución del programa. Imagina que diseñas un programa que muestra por pantalla las primeras líneas de un fichero. Puede resultar incómodo de utilizar si, cada vez que lo arrancas, el programa se detiene para pedirte el fichero con el que quieres trabajar y el número de líneas iniciales a mostrar. En los intérpretes de órdenes Unix (y también en el intérprete DOS de Microsoft Windows) hay una forma alternativa de «pasar» información a un programa: proporcionar argumentos en la línea de órdenes. Por ejemplo, podríamos indicar a Python que deseamos ver las 10 primeras líneas de un fichero llamado escribiendo en la línea de órdenes lo siguiente: ¿Cómo podemos hacer que nuestro programa sepa lo que el usuario nos indicó en la línea de órdenes? La variable argv, predefinida en sys, es una lista que contiene en cada una de sus celdas una de las palabras (como cadena) de la línea de órdenes (excepto la palabra python3). En nuestro ejemplo, el nombre del fichero con el que el usuario quiere trabajar está en argv 1 y el número de líneas en argv 2 (como cadena). El programa podría empezar así: 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15
from sys import argv
Obtiene los parámetros de la línea de órdenes nombre argv 1 número int argv 2 Muestra las primeras líneas del fichero fichero open nombre contador 0 for línea in fichero print línea rstrip contador 1 if contador número break fichero close
Cuando se ha llegado al final del fichero y no hay más texto que leer, read devuelve la cadena vacía. El siguiente programa muestra en pantalla una versión cifrada de un fichero de texto. El método de cifrado que usamos es bastante simple: se sustituye cada letra minúscula (del alfabeto inglés) por su siguiente letra, haciendo que a la le suceda la . 1 2 3 4 5 6 7 8 9
10 11 12 13 14
nombre fichero
input open nombre
carácter fichero read 1 while carácter if carácter and carácter codificado chr ord carácter elif carácter codificado else codificado carácter print codificado end carácter fichero read 1 fichero close
Andrés Marzal / Isabel Gracia / Pedro García - ISBN: 978-84-697-1178-1
1
396
Introducción a la programación con Python 3 - UJI - DOI: http://dx.doi.org/10.6035/Sapientia93