Lectura y Escritura de ficheros en Python, con ejemplos


El proyecto de este post lo puedes descargar pulsando AQUI.

En este tutorial vamos a ver como leer y escribir fichero en Python, dado que es una de las cosas que suele ser muy util y utilizada a la hora de programar. Aunque la lectura y escritura de ficheros se puede hacer de varias formas, en este tutorial os vamos a dar el código necesario para realizar estas acciones.

Antes de pasar a explicar y a mostrar ejemplos de lectura y escritura, mostramos en la siguiente imagen un diagrama para ver los modos de lectura y escritura en python:

IO_Python_Jarroba

Lectura de Ficheros:

Vamos en primer lugar a leer el contenido del siguiente fichero (llamado 'fichero_leer.txt') e imprimir por pantalla lo que leemos:

Linea 1
Linea 2
Linea 3
Linea 4
Linea 5
Linea 6
Linea 7
Linea 8
Linea 9
Linea 10

En primer lugar tenemos que decir la ruta o directorio donde se encuentra el fichero que queremos leer, especificando la ruta donde se encuentra el fichero (ejem -> Windows: c:\\carpeta\……\fichero.txt,  Linux o Unix: \var\www\……\fichero.txt). 

dirFichero = './fichero_leer.txt'

Dado que estamos ejecutando este código en un sistema operativo Unix, estamos indicando con el símbolo '.' que el fichero se encuentra en la misma carpeta que el fichero python que estamos ejecutando, pero podíamos poner perfectamente la ruta absoluta para referenciar a este fichero.

Una vez que tenemos el fichero que queremos leer, abrimos el mismo en modo lectura ('r') y con un bucle 'for', vamos leyendo linea a linea el fichero y lo imprimimos por pantalla:

dirFichero = './fichero_leer.txt'
with open(dirFichero, 'r') as reader:
    for line in reader:
        print line

Siguiendo el diagrama de la primera imagen, queríamos leer el fichero desde el principio y por tanto hemos elegido la opción 'r', pero podíamos haber elegido también la opción 'r+' para leer el fichero desde el principio y sin borrar su contenido.

Por otro lado podemos también empezar a leer el fichero desde una posición concreta (o desde un byte concreto). Esto lo hacemos indicando con el métod 'seek(byte)' desde el byte que queremos empezar a leer. Veamos un ejemplo de ello, empezando a leer el fichero desde el byte 32, que correspondería comenzar a leer el fichero desde la linea 5:

with open(dirFichero, 'r') as reader:
    reader.seek(32)
    for line in reader:
        print line

Como resultado se imprimiría por pantalla lo siguiente:

Linea 5
Linea 6
Linea 7
Linea 8
Linea 9
Linea 10

Por último vamos a mostrar la opción 'w+' que tras leer el fichero borra su contenido. Esto se haría de la siguiente manera, pasandole como opción 'w+'

with open(dirFichero, 'w+') as reader:
    for line in reader:
        print line

Escritura de Ficheros:

Para la escritura de un fichero, vamos a poner un ejemplo en el que vamos a escribir cada elemento de una lista en una linea. Para ello abriremos un fichero con la opción 'w' (si existe el fichero borra su contenido y si no existe lo crea) y con el método 'write()' escribiremos el contenido que le pasemos como parámetro. Esto lo hacemos de la siguiente forma:

# Lista con las lineas a escribir en el fichero
lineas = ['Uno', 'Dos', 'Tres', 'Cuatro', 'Cinco', 'Seis', '...']

dirFichero = './fichero_escribir.txt'
fichero = open(dirFichero, 'w')
for l in lineas:
    fichero.write(l + '\n')
fichero.close()

Como resultado vamos a tener un fichero con el siguiente contenido:

Uno
Dos
Tres
Cuatro
Cinco
Seis
...

Por otra parte si lo que queremos es continuar escribiendo en el fichero sin borrar su contenido, debemos de aplicar la opción 'a+' que se posiciona al final del fichero sin borrar su contenido y en este caso empieza a escribir contenido a partir de esa posición:

# Lista con las lineas a escribir en el fichero
lineas = ['Uno', 'Dos', 'Tres', 'Cuatro', 'Cinco', 'Seis', '...']

dirFichero = './fichero_escribir.txt'
# Escribo en el fichero el contenido de la lista, sin borrar el contenido del fichero
fichero = open(dirFichero, 'a+')
for l in lineas:
    fichero.write(l + '\n')
fichero.close()

Como resultado, tenemos un fichero cuyo contenido es el contenido que había anteriormente (el contenido de la lista) más el nuevo contenido que hemos escrito que es la misma lista:

Uno
Dos
Tres
Cuatro
Cinco
Seis
...
Uno
Dos
Tres
Cuatro
Cinco
Seis
...
Comparte esta entrada en:
Safe Creative #1401310112503
Lectura y Escritura de ficheros en Python, con ejemplos por "www.jarroba.com" esta bajo una licencia Creative Commons
Reconocimiento-NoComercial-CompartirIgual 3.0 Unported License.
Creado a partir de la obra en www.jarroba.com

Un comentario en “Lectura y Escritura de ficheros en Python, con ejemplos”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies

ACEPTAR
Aviso de cookies