Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python进行单文件解压缩优化_Python_Python 3.x_Optimization_Zip_Unzip - Fatal编程技术网

使用python进行单文件解压缩优化

使用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

我有一个很大的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_source.infolist()[0], extract_path) # extract path is correctly defined earlier in the code
解压一个大文件似乎需要很长时间(文件大小>500MB),我想优化这个解决方案


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

如果文件实际上是使用常用的解压缩算法LZ77/LZW/LZSS进行压缩的,则无法将zip文件的解压缩与其中的一个文件并行。这些算法本质上是顺序的

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


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

询问软件/库建议的问题通常过于广泛,不适合此网站,因为任何答案通常只是一种意见。我不是在寻找库,而是在寻找优化解决方案(甚至是伪代码)您可以控制文件的创建吗?你不能把文件分成多个吗?当然,这将是不利于存储的处理时间(如果您假定使用多处理)。此外,您还可以将文件提取过程外包给外部程序,例如7zip。不,这是由第三方提供的文件。感谢您的回答,我担心情况就是这样。