大家在工作中,有没有遇到这个问题,那就是在使用python的时候,无法实现不写硬盘上传文件,这样会导致工作效率大大降低。那么,怎么才能够实现python不读写硬盘上传文件呢?下面给大家列举了几种实例,希望能够对大家带来帮助,祝大家在工作中,早日实现财富自由。
引言
假如说你写了一个api,并且能够接受client上传的文件,然后在上传到oss,那么这个时候,你会怎么做?先写硬盘,然后在上传到oss?太笨了!
你写了一个截图服务,截到的图要上传到oss,你会怎么做?先写硬盘,在上传到oss?太笨了!
那么,这篇文章,就教你怎么去实现上述功能!
一、文本类型
使用io.StringIO
io.StringIO
1、import io
2、from loguru import logger
3、file_like_obj=io.StringIO("hahaha")
4、logger.debug(file_like_obj)
5、logger.debug(type(file_like_obj))
6、logger.debug(getattr(file_like_obj,'read'))
7、logger.debug(file_like_obj.read())
输出结果如下:
2022-07-11 21:23:51.206|DEBUG|__main__::8-<_io.StringIO object at 0x100323eb0>
2022-07-11 21:23:51.206|DEBUG|__main__::9-
2022-07-11 21:23:51.206|DEBUG|__main__::10-
2022-07-11 21:23:51.206|DEBUG|__main__::11-hahaha
再看一个熟悉的:
1、import io
2、from loguru import logger
3、file_like_obj=io.StringIO("hahaha")
4、with file_like_obj as f:
5logger.debug(f.read())
输出结果如下:
2022-07-11 21:35:04.620|DEBUG|__main__::9-hahaha
二、二进制类型
使用io.BytesIO
使用requests把字符串按照文件上传
下面的代码是标准的上传文件的代码:
1、import requests
2、import io
3、response=requests.post('http://localhost:5000/',files={
'file':open('纵观人类文明史.txt','r',encoding='utf-8')
})
4、print(response.text)
但是我想把open('纵观人类文明史.txt','r',encoding='utf-8')替换为字符串。为此我想到的办法是把字符串先写到硬盘上,在按照上面的代码上传,可是这太低效率(硬盘太低效率),平白无故多了两次硬盘读写操作,我想直接把内存中的字符串按照文件上传有什么办法吗?
参考文档
https://docs.python.org/zh-cn/3/library/io.html#io.StringIO
以上就是Python实现不写硬盘上传文件的详细内容,更多关于Python不写硬盘上传文件的资料,请继续关注本小编哦
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/127484.html
摘要:文件的基本操作编码不同编码之间的二进制是不能互相识别的。返回值有几种情况分别是没有返回值返回一个值返回多个值。函数定义计算的长度函数调用因为没有返回值,此时的为只写,后面不写其他内容,也会返回,但是遇到会终止整个函数。 文件的基本操作 编码 1.不同编码之间的二进制是不能互相识别的。2.对于文件的存储,及传输 不能是unicode的编码。 bytes:内部编码格式(非unicode) ...
摘要:代码审计一文件上传概述在网站的运营过程中,不可避免地要对网站的某些页面或内容进行更新,这时便需要使用到网站上的文件上传功能。 PHP 代码审计:(一)文件上传 0x00 概述 在网站的运营过程中,不可避免地要对网站的某些页面或内容进行更新,这时便需要使用到网站上的文件上传功能。如果不对被上传文件进行限制,或限制被绕过,该功能便有可能会被利用于上传可执行文件、脚本到服务器上,今儿进一步导...
?前言 在Python写代码做项目时,我们往往需要对多个文件进行操作,在现在的源代码文件中怎么导入其他文件?怎么对其他文件进行操作?这都是经常要面临的问题,尤其是爬虫,爬到的数据放在哪里?用到的时候怎么调出来? 这就涉及到了Python的文件操作知识了,我们不可能永远都只会在一个源文件上做所有的操作,这也是必须掌握的一个知识板块。 与此同时,我的Python新手入门教程系列文章也已经快更新完了,欢...
摘要:负责从拉取数据源,把数据源分词,建立索引搜索模块工作流程如下模块从中拉取数据模块用经过中文分词后的数据建立索引客户端向模块发起搜索请求模块查找索引中的数据模块得到索引中符合要求的数据的等数据把数据返回给客户端 (整理自《App后台开发运维和架构实践》 作者:曾健生) 一、从业务逻辑中提炼API接口 此过程可分为六个阶段: 业务逻辑思维导图 功能——业务逻辑思维导图 基本功能模块关系 ...
阅读 889·2023-01-14 11:38
阅读 833·2023-01-14 11:04
阅读 684·2023-01-14 10:48
阅读 1887·2023-01-14 10:34
阅读 891·2023-01-14 10:24
阅读 750·2023-01-14 10:18
阅读 479·2023-01-14 10:09
阅读 519·2023-01-14 10:02