El módulo gzip ofrece una interfaz parecida a open(). Así puedes procesar logs, CSV y respuestas archivadas línea por línea sin cargar todo el contenido descomprimido en memoria.
Ejemplo práctico
import gzip
lines = ["id,name\n", "1,Ana\n", "2,Leo\n"]
with gzip.open("report.csv.gz", "wt", encoding="utf-8", newline="") as file:
file.writelines(lines)
with gzip.open("report.csv.gz", "rt", encoding="utf-8") as file:
print(file.readline().strip())
Texto, bytes y streaming
Usa rt o wt con codificación para texto, y rb o wb para bytes. Iterar mantiene predecible la memoria; un read() sin límite puede eliminar esa ventaja.
Límites e integridad
Gzip comprime un flujo, pero no empaqueta un directorio. Una entrada muy comprimida puede expandirse demasiado, por lo que debes imponer límites y capturar BadGzipFile. Para varios archivos, elige ZIP o TAR.
Sigue aprendiendo
Consulta también shutil en Python: Copiar, Mover y Comprimir y Pathlib Python: Guía Completa para Manipular Archivos. A documentación oficial de Python, consultada el 22 de julio de 2026, detalla la API y el comportamiento entre versiones.