我想知道有没有办法只下载.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来完成它。
答案 0 :(得分:1)
评论中提到的question @Juggernaut实际上非常有用,因为它指出了解决方案的方向。
您需要为Bytes.IO创建一个替代项,以便将必要的信息返回给ZipFile
。您需要获取文件的长度,然后获取ZipFile
要求的任何部分。
这些文件有多大?这真的值得吗?