requests--文件上传,文件下载

简介: requests--文件上传,文件下载

文件上传


在做接口自动化的时候,有时需要上传文件,比如更改头像等等,在request里,通过files参数来上传

import requests
base_url = 'http://httpbin.org'
file = {'file': open(r'E:\00.jpg', 'rb')}
r = requests.post(base_url + '/post', files=file)
print(r.text)


文件下载


第一种方式

import requests
def dowload_file(file_path):
    headers = {"Referer": "https://xx315.xx315.nex"}
    cookie = {"Cookie": "ASP.NET_SessionId=bij"}
    r = requests.get(url='https://xx315.xx315',
                     cookies=cookie,
                     headers=headers,
                     stream=True)
    if r.status_code == 200:
        with open(file_path, 'wb') as f:
            for chunk in r.iter_content(chunk_size=1024):
                f.write(chunk)
dowload_file('F:\\123.xlsx')

注意:

文件如果不存在,会在当前目录下生成一个文件,有内容会清空在写入

第二种方式

import requests
import shutil
def download_file_raw(file_path):
    url = 'https://xx315.xx315.net/Ashx/Export'
    cookie = {"Cookie": 'ASP.NET_SessionId=sjl8'}
    r = requests.get(url=url,
                     cookies=cookie,
                     stream=True
                     )
    if r.status_code == 200:
        with open(file_path, 'wb') as f:
            r.raw.decode_content = True
            shutil.copyfileobj(r.raw, f)
download_file_raw('F:\\123.xlsx')

相关文章
|
SQL 缓存 运维
PostgreSQL 事务号回卷分析
## XID 定义 xid 是个啥东西?xid 就是 PostgreSQL 里面的事务号,每个事物都会分配一个 xid。PostgreSQL 数据中每个元组头部都会保存着 插入 或者 删除 这条元组的事务号,即 xid,然后内核通过这个 xid 进行元组的可见性判断。简单理解,比如有两个事务,xid1=200,xid2=201,那么 xid1 中只能看到 t_xmin 200 的元组。 ```c
|
JSON JavaScript 前端开发
iOS小技能: 开发 uni-app 原生插件(支持iOS Extension)
术语:uni原生插件指的是将`原生开发的功能按照规范封装成插件包`,然后即可在 uni-app 前端项目中通过js调用原生能力。
2016 0
iOS小技能: 开发 uni-app 原生插件(支持iOS Extension)
|
JSON API 数据格式
requests库中json参数与data参数使用方法的深入解析
选择 `data`或 `json`取决于你的具体需求,以及服务器端期望接收的数据格式。
959 2
|
人工智能 NoSQL 测试技术
使用 MongoDB 构建 AI:Patronus 如何自动进行大语言模型评估来增强对生成式 AI 的信心
若需了解更多MongoDB Atlas相关内容,可前往:https://www.mongodb.com/zh-cn/atlas
使用 MongoDB 构建 AI:Patronus 如何自动进行大语言模型评估来增强对生成式 AI 的信心
|
Python
Python中几种lambda排序方法
【9月更文挑战第7天】在Python中,`lambda`表达式常用于配合排序函数,实现灵活的数据排序。对于基本列表,可以直接使用`sorted()`进行升序或降序排序;处理复杂对象如字典列表时,通过`lambda`指定键值进行排序;同样地,`lambda`也适用于根据元组的不同位置元素来进行排序。
709 1
|
运维 Kubernetes 测试技术
构建高效自动化运维系统:基于容器技术的持续集成与持续部署(CI/CD)实践
【4月更文挑战第2天】 在快速发展的信息技术时代,自动化运维已成为提升企业IT效率、保障系统稳定性的关键手段。本文以容器技术为核心,探讨了如何构建一个高效的自动化运维系统,实现软件的持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)。通过深入分析Docker容器及Kubernetes集群管理工具的运用,提出了一套切实可行的CI/CD流程方案,旨在帮助读者理解并实践自动化运维的最佳实践,进而推动企业运维管理的现代化进程。
|
设计模式 算法 程序员
创建型模式 - 建造者模式(Builder Pattern)
创建型模式 - 建造者模式(Builder Pattern)
List介绍
本篇文章主要介绍Iterable、Collection、List 的常见方法签名以及含义,三者的关系在下边介绍
251 0
List介绍
|
缓存 移动开发 JavaScript
快速构建初级前端知识体系,面试题汇总
快速构建初级前端知识体系,面试题汇总
快速构建初级前端知识体系,面试题汇总
|
弹性计算 运维 容灾
阿里云使用体验
经过进一步的体验云服务器我感受到阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。云服务器ECS免去了采购IT硬件的前期准备,就像是使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩,在使用期间给阿里云我最大的印象就是方便,快捷。使用界面简单明了,通过不断地尝试,我了解到了更多的特殊概念,专业名词,也了解到了如快照等容灾备份能力的实际用途,现实生活中,如果我们的电脑磁盘出现了故障,数据出现了损坏就无能为力了,或者只能够找专业的人把数据能够找回来,但是不能够保证说所有的数据都能找回来。