流式下载大型文件,python请求中断

流式下载大型文件,python请求中断,python,python-requests,Python,Python Requests,我在PythonRequests v中的流式下载大文件(大约1.5 GB)时遇到问题。2.0.1 with open("saved.rar",'wb') as file: r = session.get(url,stream=True,timeout=3600) for chunk in r.iter_content(chunk_size=1024): if chunk: file.write(chunk) file

我在PythonRequests v中的流式下载大文件(大约1.5 GB)时遇到问题。2.0.1

with open("saved.rar",'wb') as file:
    r = session.get(url,stream=True,timeout=3600)
    for chunk in r.iter_content(chunk_size=1024):
        if chunk:
            file.write(chunk)
            file.flush()
我在我的vps上测试了几次,有时它下载了200mb、500mb或800mb,并保存了下来,没有任何错误。它没有达到超时,只是像完成下载一样停止

我下载这个文件的主机是稳定的,因为我在浏览器中下载这个文件没有任何问题

有没有办法下载python请求中的大文件并100%确定其整个文件

@编辑

我已经用urllib解决了这个问题,问题只在于请求。
无论如何,谢谢您的帮助。

可能有几个问题会导致下载中断。网络问题等。但在开始下载之前,我们知道文件大小。为了检查您是否下载了整个文件,您可以使用urllib:

site = urllib.urlopen("http://python.org")
meta = site.info()
print meta.getheaders("Content-Length")
使用请求:

r = requests.get("http://python.org")
r.headers["Content-Length"]

我被你头像里的照片弄得心烦意乱!英雄联盟我在开玩笑。不太常见,所以。。。。查看此链接…@Jack\u of_All\u Trades不幸的是,我在那里没有找到任何东西。这和我的代码是一样的。好吧,但我想知道请求有什么问题,因为我需要下载文件10次才能得到整个文件,而curl没有同样的问题。您可能需要os.fsync(),如中所述。尝试记录任何错误和异常。我怀疑可能是内存不足的消息。