6. Entrada/Salida

Las funciones y operaciones que se agrupan dentro de este capítulo son las que nos permitirán meter datos a nuestros programas y sacar datos de estos. Ya conocemos dos de estas funciones: input y print.

Vamos ahora a conocer formas para leer y escribir información en ficheros del sistema. Algo que puede sernos muy útil para conseguir que nuestros programas tengan información perdurable sobre el sistema de ficheros.

Antes de trabajar con ficheros hemos de conocer dos instrucciones que debemos utilizar, antes de empezar a usarlos y tras terminar de utilizar estos:

La función open nos devuelve una variable de tipo File que nos ayudará a manejar el fichero. Esta variable u objeto guarda en su interior la última posición leída u escrita. Para invocar correctamente open necesitamos, al menos, dos argumentos: uno es la ruta del fichero sobre el sistema (relativa a donde estamos situados o absoluta desde la raíz del sistema) y dos es el modo en el que vamos a trabajar. Hemos de seleccionar uno de los siguientes modos:

Leer de ficheros

Para leer un fichero con Python debemos primero indicar al sistema nuestra intención para luego proceder a leerlo. Una vez lo hayamos abierto, sobre el fichero podemos realizar diferentes operaciones de lectura. A continuación listo las más comunes:

Veamos dos ejemplos. En este primero leeremos todo el fichero de golpe guardándolo en un solo string:

    fichero = open("nombre.txt","r")
    texto = fichero.read()
    fichero.close()

Ahora leeremos todo el fichero pero separado en líneas y nos quedaremos solo con las dos últimas:

    fichero = open("nombre.txt", "r")
    lineas = fichero.readlines()[-2:]
    fichero.close()

Escribir en ficheros

Para escribir un fichero, las operaciones previas son similares a la lectura. Necesitamos ejecutar open con el modo adecuado. Una vez hecho esto podemos elegir dos funciones para escribir en el:

Si queremos escribir manualmente un salto del línea para separar dos líneas hemos de escribir el caracter \n. Veamos un ejemplo:

    fichero = open("salida.txt","w")
    fichero.write("Esta será la primera línea del fichero")
    fichero.write("\n")
    fichero.write("Esta será la segunda línea")
    fichero.close()