Este tutorial proporciona una guía completa sobre el manejo de archivos en Python. Los archivos son cruciales para el almacenamiento y la recuperación persistente de datos, permitiendo que sus programas interactúen con datos más allá de su tiempo de ejecución. Cubriremos las operaciones fundamentales de archivos, desde abrir y cerrar archivos hasta leer, escribir, renombrar y eliminarlos. También exploraremos las mejores prácticas para el manejo de errores y la gestión eficiente de archivos.
Tabla de Contenido:
- Abrir Archivos
- Objetos de Archivo y Administradores de Contexto
- Escribir en Archivos
- Leer de Archivos
- Operaciones del Sistema de Archivos: Renombrar y Eliminar
- Manejo de Excepciones
1. Abrir Archivos
La función open()
es la piedra angular de la interacción con archivos en Python. Toma el nombre del archivo (una cadena) y un modo como argumentos principales. El modo determina cómo se accederá al archivo (lectura, escritura, anexión, etc.).
Los modos comunes incluyen:
'r'
: Lectura (predeterminado). Abre para lectura. Genera un error si el archivo no existe.'w'
: Escritura. Abre para escritura. Sobrescribe el archivo si existe; lo crea si no existe.'a'
: Anexión. Abre para escritura. Anexa datos al final si el archivo existe; lo crea si no existe.'x'
: Creación exclusiva. Crea un archivo nuevo. Genera un error si el archivo ya existe.'b'
: Modo binario. Para archivos no de texto (imágenes, ejecutables). Se puede combinar con otros modos (por ejemplo,'rb'
,'wb'
).'t'
: Modo texto (predeterminado). Para archivos de texto.
# Abrir un archivo para escritura
file = open("my_file.txt", "w")
# Abrir un archivo para lectura
file = open("my_file.txt", "r")
# Abrir un archivo en modo binario para lectura
file = open("image.jpg", "rb")
2. Objetos de Archivo y Administradores de Contexto
open()
devuelve un objeto de archivo, proporcionando métodos para la interacción con archivos. Una práctica recomendada crucial es usar administradores de contexto (instrucción with
) para asegurar que los archivos se cierren automáticamente, incluso si ocurren errores:
with open("my_file.txt", "w") as file:
file.write("Este es algún texto.n") # El archivo se cierra automáticamente después de este bloque
with open("my_file.txt", "r") as file:
contents = file.read()
print(contents)
3. Escribir en Archivos
El método write()
escribe una cadena en el archivo. Para escribir varias líneas, use n
para saltos de línea.
with open("my_file.txt", "w") as file:
file.write("Línea 1n")
file.write("Línea 2n")
4. Leer de Archivos
Varios métodos leen datos del archivo:
read()
: Lee todo el contenido del archivo en una sola cadena.readline()
: Lee una sola línea.readlines()
: Lee todas las líneas en una lista de cadenas.- Iteración: Puede iterar directamente sobre un objeto de archivo para leer líneas una por una.
with open("my_file.txt", "r") as file:
contents = file.read()
print(contents)
file.seek(0) # Reinicia el puntero del archivo
line = file.readline()
print(line)
file.seek(0) # Reinicia el puntero del archivo
lines = file.readlines()
print(lines)
file.seek(0) # Reinicia el puntero del archivo
for line in file:
print(line, end="") #end="" evita un salto de línea extra
5. Operaciones del Sistema de Archivos: Renombrar y Eliminar
El módulo os
proporciona funciones para la manipulación del sistema de archivos:
import os
# Renombrar un archivo
os.rename("my_file.txt", "new_file.txt")
# Eliminar un archivo
os.remove("new_file.txt")
6. Manejo de Excepciones
Siempre maneje las posibles excepciones (FileNotFoundError
, IOError
, etc.) cuando trabaje con archivos:
try:
with open("my_file.txt", "r") as file:
# ... operaciones de archivo ...
except FileNotFoundError:
print("Archivo no encontrado.")
except IOError as e:
print(f"Ocurrió un error de E/S: {e}")