En Python, como en muchos otros lenguajes de programación, es
posible trabajar con archivos para leer, escribir o modificar su contenido. Estos archivos
pueden ser de texto plano (.txt), archivos separados por comas
(.csv),o incluso archivos binarios.
En este capítulo, nos centraremos principalmente en el manejo de archivos de texto, ya que son los más utilizados en la programación estructurada y permiten aprender los conceptos básicos de entrada/salida (E/S) de datos.
Para abrir un archivo en Python usamos la función
open(), que recibe como mínimo el nombre del archivo y opcionalmente un
modo de apertura:
archivo = open('datos.txt', 'r') # Abre el archivo en modo lectura
| Modo | Descripción |
|---|---|
| 'r' | Lectura (modo por defecto). |
| 'w' | Escritura (crea o sobrescribe el archivo). |
| 'a' | Añadir contenido al final del archivo. |
| 'x' | Crear un archivo, pero falla si ya existe. |
| 'b' | Modo binario (usado con otros modos). |
Nota: Aunque 'r' es el modo
por defecto, es recomendable especificarlo por claridad.
Una vez abierto el archivo, podemos usar distintos métodos para leer su contenido:
Lee todo el contenido del archivo como una única cadena de texto:
archivo = open('datos.txt', 'r')
contenido = archivo.read()
print(contenido)
archivo.close()
Lee una línea del archivo cada vez que se llama:
archivo = open('datos.txt', 'r')
linea = archivo.readline()
while linea != '':
print(linea, end='') # Evitamos el doble salto de línea
linea = archivo.readline()
archivo.close()
También puedes pasarle un número como argumento para leer una cantidad específica de caracteres:
archivo = open('datos.txt', 'r')
fragmento = archivo.readline(10) # Lee hasta 10 caracteres
print(fragmento)
archivo.close()
Devuelve una lista con todas las líneas del
archivo:
archivo = open('datos.txt', 'r')
lineas = archivo.readlines()
for linea in lineas:
print(linea, end='')
archivo.close()
También podemos iterar directamente sobre el archivo sin
necesidad de readlines():
with open('datos.txt', 'r') as archivo:
for linea in archivo:
print(linea, end='')
Es importante cerrar los archivos cuando ya no los necesitas, para liberar recursos del sistema y evitar errores:
archivo.close()
Una forma más segura y recomendada es usar la sentencia
with, que cierra automáticamente el archivo al finalizar el bloque:
with open('datos.txt', 'r') as archivo:
datos = archivo.read()
print(datos)
# Aquí el archivo ya está cerrado automáticamente