python 如何使用 requests 把字符串按照文件上传?
下面的代码是标准的上传文件的代码:
import requestsimport 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 requestsimport 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