Tengo dos archivos zip, ambas de carácter bien con Windows Explorer y 7-zip.expediente es el resultado de descomprimir en "BadZipFile: El archivo no es un archivo zip"
Sin embargo, cuando los abro con el módulo zipfile de Python [zipfile.ZipFile ("filex.zip")], uno de ellos se abre pero el otro da error "BadZipfile: File is not a zip file
".
Me he asegurado de que este último sea un archivo Zip válido abriéndolo con 7-Zip y mirando sus propiedades (dice 7Zip.ZIP). Cuando abro el archivo con un editor de texto, los primeros dos caracteres son "PK", mostrando que es de hecho un archivo zip.
estoy usando Python 2.5 y realmente no tienen ni idea de cómo ir sobre esto. Lo intenté tanto con Windows como con Ubuntu y existe un problema en ambas plataformas.
Actualización: Rastreo de Python 2.5.4 en Windows:
Traceback (most recent call last):
File "<module1>", line 5, in <module>
zipfile.ZipFile("c:/temp/test.zip")
File "C:\Python25\lib\zipfile.py", line 346, in init
self._GetContents()
File "C:\Python25\lib\zipfile.py", line 366, in _GetContents
self._RealGetContents()
File "C:\Python25\lib\zipfile.py", line 378, in _RealGetContents
raise BadZipfile, "File is not a zip file"
BadZipfile: File is not a zip file
Básicamente, cuando la función se llama _EndRecData
para obtener datos de Fin de Directorio Central" registro, el pago y envío comentario longitud falla [endrec [ . 7] == len (comentario)]
los valores de los locales en la función _EndRecData
son como siguiente:
END_BLOCK: 4096,
comment: '\x00',
data: '\xd6\xf6\x03\x00\x88,N8?<e\xf0q\xa8\x1cwK\x87\x0c(\x82a\xee\xc61N\'1qN\x0b\x16K-\x9d\xd57w\x0f\xa31n\xf3dN\x9e\xb1s\xffu\xd1\.....', (truncated)
endrec: ['PK\x05\x06', 0, 0, 4, 4, 268, 199515, 0],
filesize: 199806L,
fpin: <open file 'c:/temp/test.zip', mode 'rb' at 0x045D4F98>,
start: 4073
¿Podría ser esto: http://bugs.python.org/issue1757072? –
Intenta ejecutar el comando 'archivo' de unix en tus archivos. Puede ser que te dará alguna pista. –
Para ambos archivos dice: Datos de archivo Zip, al menos v2.0 para extraer – sharjeel