Requests教程-15-文件上传与下载

领取资料,咨询答疑,请➕wei:  June__Go

上一小节,我们学习了requests的HTTPS请求方法,本小节我们讲解一下在requests文件上传与下载。

文件上传

使用requests库上传文件时,需要使用files参数,并将文件打开并读取为二进制格式。以下是使用requests库上传文件的示例:

import requestsurl = 'https://www.example.com/api/upload'
files = {'file': open('example.txt', 'rb')}
response = requests.post(url, files=files)
print(response.json())

在上面的示例中,我们使用requests库发送了一个POST请求到https://www.example.com/api/upload,并使用files参数上传了example.txt文件。然后,我们使用json()方法获取响应的JSON格式内容。

文件下载

1、小型文件

使用requests库下载小型文件时,需要使用get方法,并将文件保存到本地。以下是使用requests库下载文件的示例:

import requestsurl = 'https://www.example.com/api/download'
response = requests.get(url)
with open('example.txt', 'wb') as f:f.write(response.content)

在上面的示例中,我们使用requests库发送了一个GET请求到https://www.example.com/api/download,并将响应的内容保存到本地的example.txt文件中。

需要注意的是,使用requests库下载文件时,需要使用二进制模式打开文件,并将响应的内容保存到文件中。
2、大型文件

那么在有些情况下所下载的文件可能会有几十G这么大,而直接读取内容的话耗费时间也太长了,并且会一直占用大量内容和系统资源。所以下载大型文件时需要用到stream参数,它的作用就是将先创建连接。然后只有再调用特定方法时才开始下载文件,并且每次下载都不会超过设定好的内容上限,代码如下:

import requestsurl = 'https://www.example.com/api/download'
r = requests.get(url, stream=True)
f = open("example.txt", "wb")
#循环去读取信息写入,chunk_size=512文件大小
for chunk in r.iter_content(chunk_size=512):if chunk:#把循环读取的值,写入example.txt文件f.write(chunk)

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走,希望可以帮助到大家!领取资料,咨询答疑,请➕wei:  June__Go

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/520073.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

仪酷LabVIEW OD实战(4)——Object Detection+OpenVINO工具包快速实现yolo目标检测

‍‍🏡博客主页: virobotics(仪酷智能):LabVIEW深度学习、人工智能博主 🎄所属专栏:『仪酷LabVIEW目标检测工具包实战』 📑上期文章:『仪酷LabVIEW OD实战(3)——Object Detectiononnx工具包快速…

Python(38):Request的data需入参是json,用转换json.dumps(data)

Python接口自动化测试遇到问题:误传str类型给request 接口请求数据用str传参报错,请求响应报错 排查原因:查看服务器报错是Json解析报错。 1.1、如果直接入参,进行request请求的数据: data请求值为: reqData {&quo…

【Python】6. 基础语法(4) -- 列表+元组+字典篇

列表和元组 列表是什么, 元组是什么 编程中, 经常需要使用变量, 来保存/表示数据. 如果代码中需要表示的数据个数比较少, 我们直接创建多个变量即可. num1 10 num2 20 num3 30 ......但是有的时候, 代码中需要表示的数据特别多, 甚至也不知道要表示多少个数据. 这个时候,…

vue面试--9, 1 ObjectProperty与vue3Proxy区别。2 MVVM的理解 3 双向绑定原理?

1 ObjectProperty与vue3Proxy区别 2 MVVM的理解 3 双向绑定原理?

NIO核心二:通道Channel

一、简单介绍 通道(Channel)是java.nio的第二个创建概念。Channel用于在缓冲区和位于通道另一侧的实体(通常是一个文件或者是一个套接字)之间有效的传输数据。只不过Channel本身不能直接访问数据,Channel只能和Buffer进行交互。 1.NIO的通道和流的区别 通道可以同…

Web自动化测试—webdriver的环境配置

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

猫毛过敏又不想扔掉猫怎么办?如何养猫?热门宠物空气净化器分享

养了猫咪一年多,忽然发现自己患上了过敏性鼻炎和结膜炎,就是那种一靠近猫咪就会不断打喷嚏、流鼻涕、流眼泪的症状。有时候还会感到眼睛发痒,发红。有没有什么好的方法治疗过敏性鼻炎呢? 医生建议,从根本上解决问题需…

数据结构(八)——初识单链表

😀前言 单链表是数据结构中最基本的一种链表结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。单链表具有灵活性和动态性,可以根据需要插入、删除和查找元素,适用于各种场景和问题的解决。 在本篇文章…

Java 属性可见性和TypeScripta 属性可见性区别

Java 中默认(无修饰符)的可见性对应的是包级私有(package-private),这是 Java 特有的可见性修饰符,有时也称为默认可见性,包级私有的可见性意味着只有同一个包中的其他类才能访问该成员&#xf…

STM32(7)NVIC

1. NVIC 1.1 NVIC简介 1.2 中断协作模型 1.3 NVIC的内部结构 1.4 中断向量表 1.4.2 在参考手册中查阅中断向量表

如何查看前端的vue项目是vue2还是vue3项目

1. 检查package.json文件 在项目的根目录下,打开package.json文件,查找dependencies或devDependencies部分中的vue条目。版本号将告诉你是Vue 2还是Vue 3。例如: Vue 2.x: "vue": "^2.x.x"Vue 3.x: "vue": &…

7.3 支付模块 - 创建订单、查询订单、通知

支付模块 - 创建订单、查询订单、通知 文章目录 支付模块 - 创建订单、查询订单、通知一、生成支付二维码1.1 数据模型1.1.1 订单表1.1.2 订单明细表1.1.3 支付交易记录表 1.2 执行流程1.3 Dto1.3.1 AddOrderDto 商品订单1.3.2 PayRecordDto支付交易记录扩展字段1.3.3 雪花算法…