---
title: Lectura y Escritura de ficheros en Python, con ejemplos
url: https://jarroba.com/lectura-y-escritura-de-ficheros-en-python-con-ejemplos/
author: Richard [Admin Jarroba]
date: 2015-12-31
modified: 2026-10-21
language: es
license: CC BY-NC-SA 3.0 (https://creativecommons.org/licenses/by-nc-sa/3.0/) — attribution: "Lectura y Escritura de ficheros en Python, con ejemplos", Richard [Admin Jarroba], jarroba.com
categories: Lenguajes de Programación
tags: escritura, lectura, python
repository: https://github.com/jarroba/Lectura_Escritura_ficheros_python
---

# Lectura y Escritura de ficheros en Python, con ejemplos

> En este tutorial vamos a ver como leer y escribir ficheros en Python, dado que es una de las cosas que suele ser muy útil y utilizada a la hora de programar.

El proyecto de este post lo puedes descargar pulsando [AQUI](https://github.com/jarroba/Lectura_Escritura_ficheros_python).

 

En este tutorial vamos a ver como leer y escribir ficheros en Python, dado que es una de las cosas que suele ser muy útil 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](https://jarroba.com/wp-content/uploads/2015/12/IO_Python_Jarroba.png)](https://jarroba.com/wp-content/uploads/2015/12/IO_Python_Jarroba.png)

 

### 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:

 

```text

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*).

 

```py

dirFichero = './fichero_leer.txt'
```

 

Nota

 

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:

 

```py

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:

 

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

 

Como resultado se imprimiría por pantalla lo siguiente:

 

```text

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+***'

 

```py

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:

 

```py

# 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:

 

```text

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:

 

```py

# 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:

 

```text

Uno
Dos
Tres
Cuatro
Cinco
Seis
...
Uno
Dos
Tres
Cuatro
Cinco
Seis
...
```
