flush()不一定将文件的数据写入磁盘.使用flush()后跟os.fsync()来确保此行为.
所以我的问题是:Python到底在flush做什么?我认为它强制将数据写入磁盘,但现在我发现它没有.为什么?
我在python-requests v.2.0.1中有流式下载大文件(大约1.5 GB)的问题
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()
Run Code Online (Sandbox Code Playgroud)
我在我的vps上测试了几次,有时下载200mb,500mb或800mb并保存它没有任何错误.它没有达到超时,就像完成下载一样停止.
我下载此文件的主机是稳定的,因为我没有任何问题在浏览器中下载此文件.
有什么方法可以在python请求中下载大文件并且100%确定它的整个文件?
@编辑
我用urllib解决了它,问题只在于请求.无论如何,谢谢你的帮助.