是否可以使用python zipfile库下载ZIP文件的一部分

时间:2017-07-16 07:08:04

标签: python web-scraping zipfile

我想知道有没有办法只下载.rar或.zip文件的一部分而不下载整个文件?有一个包含文件A,B,C和D的zip文件。我只需要A.我能以某种方式使用zipfile模块,这样我只能下载1个文件吗?

我正在尝试下面的代码:

 r = c.get(file)
    z = ZipFile.ZipFile(BytesIO(r.content)) 
    for file1 in z.namelist():
        if 'time' not in file1:
            print("hi")
            z.extractall(file1,download_path + filename)

此代码正在下载整个zip文件,只提取特定的一个。我可以以某种方式下载我需要的文件。 有类似的问题here,但它只显示linux中的命令行approch。这个问题可以解决如何使用python liabraries来完成它。

1 个答案:

答案 0 :(得分:1)

评论中提到的question @Juggernaut实际上非常有用,因为它指出了解决方案的方向。

您需要为Bytes.IO创建一个替代项,以便将必要的信息返回给ZipFile。您需要获取文件的长度,然后获取ZipFile要求的任何部分。

这些文件有多大?这真的值得吗?