使用python进行单文件解压缩优化
我有一个很大的zip文件,里面有一个文件。 我想将该文件解压到给定目录以进行进一步处理,并使用以下代码:使用python进行单文件解压缩优化,python,python-3.x,optimization,zip,unzip,Python,Python 3.x,Optimization,Zip,Unzip,我有一个很大的zip文件,里面有一个文件。 我想将该文件解压到给定目录以进行进一步处理,并使用以下代码: 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_so
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
解压一个大文件似乎需要很长时间(文件大小>500MB),我想优化这个解决方案
我发现的所有优化都是基于多处理的,以便更快地提取多个文件,我的zip文件只包含一个文件,因此多处理似乎不是解决办法。如果文件实际上是使用常用的解压缩算法LZ77/LZW/LZSS进行压缩的,则无法将zip文件的解压缩与其中的一个文件并行。这些算法本质上是顺序的 此外,已知这些解压缩方法速度较慢(通常比从存储设备读取文件慢得多)。这主要是因为算法本身:它们的复杂性以及大多数主流处理器无法大幅提高计算速度的事实
因此,无法更快地解压缩文件,尽管您可能会发现使用另一个库的实现速度稍快。询问软件/库建议的问题通常过于广泛,不适合此网站,因为任何答案通常只是一种意见。我不是在寻找库,而是在寻找优化解决方案(甚至是伪代码)您可以控制文件的创建吗?你不能把文件分成多个吗?当然,这将是不利于存储的处理时间(如果您假定使用多处理)。此外,您还可以将文件提取过程外包给外部程序,例如7zip。不,这是由第三方提供的文件。感谢您的回答,我担心情况就是这样。