使用 python 优化单个文件解压缩

Single file unzip optimization using python

我有一个很大的 zip 文件,其中包含 1 个文件。 我想将该文件解压缩到给定目录以进行进一步处理并使用此代码:

def unzip(zipfile: ZipFile, filename: str, dest: str):
    ZipFile.extract(zipfile, filename, dest)

调用此函数使用:

 with ZipFile(file_path, "r") as zip_source:
    unzip(zip_source, zip_source.infolist()[0], extract_path) # extract path is correctly defined earlier in the code

似乎解压缩一个大文件需要很长时间(文件大小 > 500 Mb),我想优化这个解决方案。

我发现的所有优化都是基于多处理的,以便更快地提取多个文件,但是,我的 zip 只包含一个文件,因此多处理似乎不是答案。

只要文件实际上是使用通常的解压缩算法压缩的,您就不能并行解压缩包含 1 个文件的 zip 文件 LZ77/LZW/LZSS。这些算法本质上是顺序的。

此外,这些解压缩方法被认为是缓慢的(通常比从存储设备读取文件慢得多)。这主要是因为算法本身:它们的复杂性以及大多数主流处理器无法大幅加快计算速度的事实。

因此,无法更快地解压缩文件,尽管您可能会发现使用其他库的实现速度稍快。