【发布时间】:2016-06-15 21:27:55
【问题描述】:
我正在使用以下 Python 代码解压缩文件
import zipfile
zfile = zipfile.ZipFile(input_file_path)
zfile.extractall(output_path)
但是,当我尝试解压缩更大的文件时。它会引发以下错误。
NotImplementedError:压缩类型 98 (ppmd)
我应该如何解决这个错误?
谢谢。
【问题讨论】:
我正在使用以下 Python 代码解压缩文件
import zipfile
zfile = zipfile.ZipFile(input_file_path)
zfile.extractall(output_path)
但是,当我尝试解压缩更大的文件时。它会引发以下错误。
NotImplementedError:压缩类型 98 (ppmd)
我应该如何解决这个错误?
谢谢。
【问题讨论】:
Python 的 zipfile 模块不支持 PPMd 压缩——请参阅 issue 14366(已添加重点):
我认为我们应该添加注册新编解码器的功能。 在可预见的将来,Python 不太可能出现对 PPMd、jpeg 和 WavPack 的支持,但第三方库(例如 PIL)的用户将根据需要使用新的编解码器。
只有两种选择:
使用来自 Python 的外部 zip 程序和 subprocess 模块。 p7zip 程序可以很好地完成这项工作。
修改 Python 以将 PPMd 支持添加到 zipfile 模块。
请记住,PPMd 是一种极不常用的编解码器,因此大多数程序(包括常规的unzip)根本不支持它。
【讨论】:
subprocess 在终端上可以正常工作。