我正在尝试使用请求来使用the same technique as this answer下载大文件(即android cts zip文件)。 间歇性地,它无法下载整个文件,但是直到尝试将其解压缩后,我才发现出现问题的任何迹象
CTS_URL = 'http://dl.google.com/dl/android/cts/android-cts-8.0_r14-linux_x86-x86.zip'
CTS_ZIP = 'android-cts-8.0_r14-linux_x86-x86.zip'
import requests
req = requests.get(CTS_URL, stream=True)
with open(CTS_ZIP, 'wb') as cts_zip_file:
for chunk in req.iter_content(chunk_size=4096):
cts_zip_file.write(chunk)
稍后,当我尝试解压缩时,出现BadZipFile("File is not a zip file")
错误,因为该文件尚未完全下载
import zipfile
zipfile.ZipFile(CTS_ZIP) # fails
但是,我无法从请求对象中得到任何提示,指出出了问题。 req.status
是200
,req.ok
是True
。
req
知道出了什么问题吗?我目前在交互式提示中具有这些请求对象之一,因此可以对其进行进一步检查。
答案 0 :(得分:0)
您共享的代码对我有用。但是,您可能会考虑以下事项:
Content-length
的值。