Python requests 大文件下载
基础
requests模块的iter_content方法
- 获取文本的时候我们会使用response.text获取文本信息,使用response.content获取字节流
- 对于大个的文件我们就要采取分块读取的方式
iter_content#一块一块的遍历要下载的内容
iter_lines#一行一行的遍历要下载的内容
使用上面两个函数下载大文件可以防止占用过多的内存,每次只下载小部分数据。
requests.get方法的stream
- 设置requests.get的stream参数为True。
- 默认情况下是stream的值为false,它会立即开始下载文件并存放到内存当中,倘若文件过大就会导致内存不足的情况.
- 当把get函数的stream参数设置成True时,它不会立即开始下载,当你使用iter_content或iter_lines遍历内容或访问内容属性时才开始下载。
- 需要注意一点:文件没有下载之前,它也需要保持连接。
🌰
r = requests.get(url_file, stream=True)
f = open("file_path", "wb")
for chunk in r.iter_content(chunk_size=512):
if chunk:
f.write(chunk)
【解读】
通过迭代r对象的iter_content方法,同时指定chunk_size=512(即每次读取512个字节)来进行读取。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~