Manejo de Archivos en Python - Documentación Oficial
Función open()
La función built-in open()
retorna un objeto file, y es la forma estándar de abrir archivos en Python.
Sintaxis Básica
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
Modos de Apertura
'r'
: Solo lectura (default)'w'
: Solo escritura (trunca el archivo)'x'
: Creación exclusiva'a'
: Append (agregar al final)'b'
: Modo binario't'
: Modo texto (default)'+'
: Lectura y escritura
Administrador de Contexto (with)
El statement with
se introdujo en Python 2.5 (PEP 343) como una forma más limpia de manejar excepciones y limpieza de recursos.
Características
- Implementa el protocolo de administración de contexto (enter y exit)
- Garantiza que el archivo se cierre apropiadamente
- Maneja automáticamente las excepciones
Métodos Principales de Objetos File
Lectura
read(size=-1)
: Lee el archivo completo o 'size' bytesreadline()
: Lee una líneareadlines()
: Lee todas las líneas en una listaseek(offset, whence=0)
: Mueve el cursor del archivo
Escritura
write(str)
: Escribe una cadena al archivowritelines(lines)
: Escribe una lista de líneasflush()
: Fuerza la escritura del buffer
Control
close()
: Cierra el archivoclosed
: Propiedad que indica si el archivo está cerradomode
: Modo de apertura del archivoname
: Nombre del archivo
Mejores Prácticas
-
Uso de with
-
Manejo de Encoding
-
Procesamiento por Líneas
Notas Importantes
- Los archivos se cierran automáticamente cuando:
- El bloque
with
termina -
El objeto file es recolectado por el garbage collector
-
Es una buena práctica especificar siempre el encoding al abrir archivos de texto
-
Para archivos grandes, es preferible leer por líneas en lugar de cargar todo el archivo en memoria
-
El modo binario ('b') es necesario para archivos no textuales
Consideraciones de Rendimiento
readlines()
carga todo el archivo en memoria- La iteración directa sobre el archivo es más eficiente
writelines()
no agrega saltos de línea automáticamente- El buffering puede afectar el rendimiento
Excepciones Comunes
FileNotFoundError
: Archivo no encontradoPermissionError
: Permisos insuficientesIsADirectoryError
: Se intentó abrir un directorioUnicodeDecodeError
: Error de decodificación