Pregunta

¿Es posible mostrar el contenido de un archivo LZMA (.7zip) sin descomprimir el archivo completo? Además, puedo extraer un único archivo desde el archivo LZMA?

Mi problema: Tengo un archivo de 30 GB .7z que descomprime a> 5 TB. Me gustaría manipular el archivo .7z original sin necesidad de hacer un descomprimir completa.

¿Fue útil?

Solución

Sí. Comience con XZ Utilidades . Hay Perl y Python API.

Se puede encontrar el archivo que desea de las cabeceras. Cada archivo se comprime por separado, por lo que puede extraer simplemente el que usted desea.

Otros consejos

Descargar lzma922.tar.bz2 desde el SDK LZMA archivos de página en Sourceforge, a continuación, extraer los archivos y abrir C / util / 7z / 7zMain.c. Allí, encontrará rutinas para extraer un archivo de almacenamiento específica de un archivo .7z. No es necesario extraer todos los datos de todas las entradas, los espectáculos de código de ejemplo de cómo extraer simplemente el que usted está interesado. Este mismo código tiene lógica para enumerar las entradas sin necesidad de extraer todos los datos comprimidos.

I solucionó este problema mediante la instalación de 7zip ( https://www.7-zip.org/) y usando el parámetro l. Por ejemplo:

7z l file.7z

La salida tiene alguna información descriptiva y la lista de archivos en los archivos comprimidos. Entonces, esto lo llamo pitón dentro usando la biblioteca de subprocesos:

import subprocess
output = subprocess.Popen(["7z","l", "file.7z"], stdout=subprocess.PIPE)
output = output.stdout.read().decode("utf-8")

No se olvide de asegurarse de que el programa 7z es accesible en su variable PATH. Tenía que hacerlo manualmente en Windows.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top