es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Leer archivo gz en Python.

Estoy tratando de leer/extraer el contenido del archivo train.gz.

Mi código:

import gzip
with gzip.open('train.gz', 'rb') as f:
    file_content = f.read()

Cuando ejecuto:

print(file_content)

Obtengo este error (en Jupyter Notebook):

MemoryError                               Traceback (most recent call last)
/tmp/ipykernel_2392/4036593255.py in <module>
----> 1 print(file_content)
MemoryError: 

¿Alguna sugerencia?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el archivo train.gz es demasiado grande para caber en la memoria. En lugar de leer el archivo completo de una vez, puedes intentar leer el archivo línea por línea o en fragmentos. Por ejemplo, puedes usar el método gzip.GzipFile para crear un objeto similar a un archivo que se pueda recorrer línea por línea:

    import gzip
    
    with gzip.GzipFile('train.gz', 'r') as f:
        for line in f:
            # hacer algo con cada línea
    

    Alternativamente, puedes leer el archivo en fragmentos utilizando un bucle:

    import gzip
    
    with gzip.open('train.gz', 'rb') as f:
        while True:
            chunk = f.read(1024)  # leer 1KB a la vez
            if not chunk:
                break
            # hacer algo con cada fragmento
    

    Al leer el archivo línea por línea o en fragmentos más pequeños, puedes procesar el contenido del archivo sin quedarte sin memoria.

Comments are closed.