2016-06-15 21 views
0

ich folgenden Python-Code verwenden die DateienPython entpacken große Datei - NotImplementedError: Komprimierungstyp 98

import zipfile 
zfile = zipfile.ZipFile(input_file_path) 
zfile.extractall(output_path) 

jedoch zu entpacken, wenn ich versuche, eine größere Datei zu entpacken. Es wirft den folgenden Fehler auf.

NotImplementedError: compression type 98 (ppmd)

Wie soll ich diesen Fehler beheben?

Vielen Dank.

+0

http://stackoverflow.com/questions/1690993/zip-file-with-ppmd-compression-programmatical-unzip –

Antwort

0

Python zipfile Modul nicht PPMd Kompression unterstützen - siehe issue 14366 (Hervorhebung hinzugefügt):

I think we should add the ability to register new codecs. Support for PPMd, jpeg and WavPack is unlikely to emerge in the Python in the foreseeable future, but users of third-party libraries (such as PIL), will use the new codecs as needed.

Es gibt nur zwei Möglichkeiten:

  • ein externes Zip-Programm von Python verwenden, und das subprocess Modul. Das p7zip Programm würde die Arbeit gut machen.

  • Ändern Sie Python, um dem Modul zipfile PPMd-Unterstützung hinzuzufügen.

Beachten Sie, dass PPMd ein äußerst ungewöhnlich Codec ist, zu verwenden, so dass die meisten Programme (einschließlich regelmäßiger unzip) tun es überhaupt nicht unterstützen.

+0

danke @Dietrich Epp, ich muss den Python-Code in einem Unix-Terminal-Server ausführen, damit ich kann Verwenden Sie nur die zweite Lösung, die Sie vorgeschlagen haben. Kennen Sie irgendwelche Ressourcen, die mir helfen würden, PPMd-Unterstützung hinzuzufügen? – merimini

+0

@merimini: Wovon redest du? 'subprocess' funktioniert vom Terminal aus. –

+0

Ich habe Ihre erste Option verwendet, es hat funktioniert. Vielen Dank. – merimini