2017-07-16 83 views
0

我想知道是否有任何方法可以下载.rar或.zip文件的一部分而无需下载整个文件?有一个包含文件A,B,C和D的zip文件。我只需要A.我可以以某种方式使用zipfile模块,以便我只能下载1个文件?是否可以使用python zipfile库下载ZIP文件的一部分

我试图下面的代码:

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) 

此代码下载整个压缩文件,只提取特定之一。我可以以某种方式只下载我需要的文件。 还有类似的问题here但它只显示在Linux中通过命令行。这个问题剂量解决了如何使用python liabraries完成它。

+0

可能重复的[是否可以下载一个ZIP档案(例如一个文件)的一部分?](https://stackoverflow.com/questions/8543214/is-it-possible-to-download-just-一部分的zip压缩文件,例如一个文件) – Juggernaut

+0

@Juggernaut nope。这是在unix环境中。我问是否可以使用Python代码。在这个问题上没有提到任何类型的东西。我已经检查过这个问题。并问我的 – PriyalChaudhari

回答

1

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

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

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

+0

是的,我想忽略的文件是每个1.5 GB左右。并且有这样的10个文件 – PriyalChaudhari

+0

我怀疑,如果你昨天开始下载它们,你现在已经在你的本地计算机上安装了它们,整个解压缩。 – zmbq

+0

zmbq你能不能解释一下如何做到这一点。我无法弄清楚 – PriyalChaudhari

相关问题