And*_*ane 4 python chunks python-requests
我为什么要使用iter_content,特别是我对使用chunk_size的用途感到非常困惑,因为我尝试过使用它,并且在下载成功后似乎以各种方式保存了文件。
g = requests.get(url, stream=True)
with open('c:/users/andriken/desktop/tiger.jpg', 'wb') as sav:
for chunk in g.iter_content(chunk_size=1000000):
print (chunk)
sav.write(chunk)
Run Code Online (Sandbox Code Playgroud)
帮助我了解的用法,iter_content当您看到将1000000字节用作时chunk_size,会发生什么,确切的目的和结果是什么?
这是为了防止将整个响应立即加载到内存中(它还允许您在流式传输响应时实现一些并发性,以便可以在等待请求完成时进行工作)。
设置流请求的目的通常是针对媒体。就像尝试使用请求下载500 MB的.mp4文件一样,您想要流式传输响应(并将流以块形式写入chunk_size),而不是等待立即将所有500mb加载到python中。
如果要实现任何UI反馈(例如“下载的<chunk_size>字节...”之类的下载进度),则需要流式处理和分块处理。如果您的响应包含一个Content-Size标头,则您也可以计算每个保存的块的完成百分比。
| 归档时间: |
|
| 查看次数: |
10686 次 |
| 最近记录: |