python 如何使用 requests 把字符串按照文件上传?

python 如何使用 requests 把字符串按照文件上传?

下面的代码是标准的上传文件的代码:

import requests

import io

response = requests.post('http://localhost:5000/', files={

'file': open('纵观人类文明史.txt', 'r', encoding='utf-8')

})

print(response.text)

但是我想把 open('纵观人类文明史.txt', 'r', encoding='utf-8') 替换为字符串。为此我想到的办法是把字符串先写到硬盘上,在按照上面的代码上传,可是这太低效率(硬盘太低效率),平白无故多了两次硬盘读写操作,我想直接把内存中的字符串按照文件上传有什么办法吗?


回答:

python">import requests

import io

response = requests.post('http://localhost:5000/', files={

'file': io.StringIO('你好')

})

print(response.text)

问题已解决:搜索 类文件对象(file-like object) 了解更多。

参考:
浅谈Python中类文件对象的使用
Python Doc:class io.StringIO(initial_value='', newline='\n')


如果你想上传的是二进制流,比如图片,并且不想通过磁盘这种落后的东西,那么可以用 io.Bytes

io.Bytes 可以帮你把「字节流」伪装成可读可写的文件

以上是 python 如何使用 requests 把字符串按照文件上传? 的全部内容, 来源链接: utcz.com/p/938175.html

回到顶部