¿Es fácil leer una línea de un archivo de texto comprimido en gz usando python sin extraer el archivo por completo? Tengo un archivo text.gz que tiene 200mb de aroud. Cuando lo extraigo, se convierte en 7.4 gb. Y este no es el único archivo que tengo que leer. Para el proceso total, tengo que leer 10 archivos. Aunque este será un trabajo secuencial, creo que será inteligente hacerlo sin extarctuar toda la información. Ni siquiera sé que es posible. ¿Cómo se puede hacer usando Python? Necesito leer un archivo de texto línea por línea.python: leer líneas de archivos de texto comprimido
32
A
Respuesta
12
¿Has probado a usar gzip.GzipFile? Los argumentos son similares a open
.
38
Puede usar el módulo gzip estándar en python. Simplemente use:
gzip.open('myfile.gz')
para abrir el archivo como cualquier otro archivo y leer sus líneas.
Más información aquí: Python gzip module
22
Usando gzip.GzipFile:
import gzip
with gzip.open('input.gz','r') as f:
for line in f:
print('got line', line)
Nota : para python3 tiene que especificar el archivo que se abrirá en 'rt'
, como 'r'
por defecto a la lectura binaria, o de lo contrario, use line.decode(...)
.
Nota : gzip.open(filename, mode)
es un alias de gzip.GzipFile(filename, mode)
. Prefiero el primero, ya que se parece al with open(...) as f:
utilizado para abrir archivos sin comprimir.
Cuestiones relacionadas
- 1. Leyendo las últimas líneas del archivo de texto comprimido
- 2. python - Leer archivo desde y hacia líneas de texto específicas
- 3. Búsqueda rápida en archivos de texto comprimido
- 4. Leer dos archivos de texto línea por línea simultáneamente -python
- 5. Python: leer archivos de texto complicados con numpy
- 6. Leer líneas más allá de SUB en Python
- 7. ¿Cómo leer archivos de texto en Android?
- 8. Python: Leer archivo de configuración con múltiples líneas por clave
- 9. Leer/escribir archivos en Python
- 10. Python: Leer gran cantidad de líneas de stdin
- 11. iOS Leer líneas de archivos en la matriz
- 12. Análisis de archivos de texto con Python
- 13. Leer líneas de un archivo de texto pero omita las dos primeras líneas
- 14. Lea un archivo grande de texto comprimido línea por línea en python
- 15. ¿El mejor método para leer archivos delimitados por líneas nuevas en Python y descartar las nuevas líneas?
- 16. Leer archivos Unicode C++
- 17. ¿Cómo puedo rastrear un archivo comprimido sin leer todo su contenido?
- 18. Cómo intercalar líneas desde dos archivos de texto
- 19. Comparación de dos archivos de texto en python
- 20. ¿Cómo leer líneas del archivo mmap en python?
- 21. Python: ¿cómo leer un archivo con líneas delimitadas NUL?
- 22. ¿Cómo puedo leer 2 líneas consecutivas de un archivo de texto y guardarlas como variables temporales
- 23. Usando FileFormat v Serde para leer archivos de texto personalizados
- 24. Cómo leer archivos de texto sin conocer la codificación
- 25. Escribir y leer archivos de texto en el iPhone
- 26. J2ME/Blackberry: ¿cómo leer/escribir archivos de texto?
- 27. Leer texto de InputStream
- 28. Uso de csvreader contra un archivo comprimido en Python
- 29. ¿Cómo leer el texto de QLineEdit en python?
- 30. Haskell leer las líneas de archivo
Por curiosidad, ¿esto carga todo el archivo en la memoria? ¿O es lo suficientemente inteligente como para cargar líneas según sea necesario? –
@Sachin_ruk esto no carga el archivo solo lo abre. Para poder cargar los datos del archivo, debe hacer '' 'f.readline()' 'para leer la línea a la vez. O '' f.readlines (N) '' donde '' N'' es el número de líneas que desea leer. – Tom