通过 post 请求将二进制数据作为文件提交

Pau*_*urn 4 python performance python-3.x python-requests

我知道如何提交带有文件的发布请求。

files = {'file': open('local.pdf', 'rb')}
r = requests.post(url, files=files)
Run Code Online (Sandbox Code Playgroud)

由于我是从响应中下载文件,因此我想避免response.contents在提交发布请求之前将其写入本地磁盘(“local.pdf”)。我可以将文件作为字节对象提交吗?

Jér*_*ard 5

您可以使用io.BytesIO来做到这一点。

这是一个例子:

rawData = io.BytesIO(b"Some data: \x00\x01") # Change the content
files = {'file': rawData}
r = requests.post(url, files=files)
Run Code Online (Sandbox Code Playgroud)