下面是关于“python实现requests发送/上传多个文件的示例”的完整攻略。
环境准备
在使用requests
库发送或上传多个文件之前,需要保证你已经安装了requests
库和os
库。你可以在命令行中输入以下命令进行安装:
pip install requests
发送/上传单个文件
在使用requests
库发送或上传多个文件之前,我们先来看一下如何发送或上传单个文件。以下是一个简单的发送文件的示例:
import requests
url = 'http://httpbin.org/post'
file_path = './test.txt' # 文件路径
with open(file_path, 'rb') as f:
files = {'file': f}
response = requests.post(url, files=files)
print(response.text)
以上代码将test.txt
文件发送给http://httpbin.org/post
的API接口,输出响应信息。其中files
参数是一个字典类型,键名是文件在表单中的字段名,键值是文件对象。需要注意的是,文件对象必须是以二进制读取方式打开。
发送/上传多个文件
requests
库同样支持发送或上传多个文件。下面是一个发送多个文件的示例:
import requests
import os
url = 'http://httpbin.org/post'
file_dir = './files/' # 文件夹路径
files = {}
for file_name in os.listdir(file_dir):
file_path = os.path.join(file_dir, file_name)
with open(file_path, 'rb') as f:
files[file_name] = f
response = requests.post(url, files=files)
print(response.text)
以上代码将files
文件夹下的所有文件发送给http://httpbin.org/post
的API接口,输出响应信息。需要注意的是,在循环中需要用os.listdir()
获取文件夹下的所有文件名,然后通过os.path.join()
将文件夹路径和文件名拼接成完整文件路径,最后以字典类型存入files
参数中。
除了以上示例以外,requests
库还提供一个multipart_encode
函数,可以将多个文件编码成multipart/form-data
格式的表单数据进行发送或上传,但是还是建议使用以上的方法直接添加到files
参数中进行编码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python实现requests发送/上传多个文件的示例 - Python技术站