Python中实现上传文件有什么方法
Admin 2022-07-26 群英技术资讯 517 次浏览
你写了一个 api,接受 client 上传的文件,然后在上传到 oss,你会怎么做?先写硬盘,然后在上传到 oss?太笨了!
你写了一个截图服务,截到的图要上传到 oss,你会怎么做?先写硬盘,在上传到 oss?太笨了!
这篇文章教你重新做人!
使用 io.StringIO
import io from loguru import logger file_like_obj = io.StringIO("hahaha") logger.debug(file_like_obj) logger.debug(type(file_like_obj)) logger.debug(getattr(file_like_obj,'read')) logger.debug(file_like_obj.read())
输出结果如下:
2022-07-11 21:23:51.206 | DEBUG | __main__:<module>:8 - <_io.StringIO object at 0x100323eb0>
2022-07-11 21:23:51.206 | DEBUG | __main__:<module>:9 - <class '_io.StringIO'>
2022-07-11 21:23:51.206 | DEBUG | __main__:<module>:10 - <built-in method read of _io.StringIO object at 0x100323eb0>
2022-07-11 21:23:51.206 | DEBUG | __main__:<module>:11 - hahaha
再看一个熟悉的:
import io from loguru import logger file_like_obj = io.StringIO("hahaha") with file_like_obj as f: logger.debug(f.read())
输出结果如下:
2022-07-11 21:35:04.620 | DEBUG | __main__:<module>:9 - hahaha
使用 io.BytesIO
下面的代码是标准的上传文件的代码:
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')
替换为字符串。为此我想到的办法是把字符串先写到硬盘上,在按照上面的代码上传,可是这太低效率(硬盘太低效率),平白无故多了两次硬盘读写操作,我想直接把内存中的字符串按照文件上传有什么办法吗?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本文主要介绍了使用spyder3调试python程序的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
今天就带大家详细总结一下Python闭包和装饰器的相关知识,需要的朋友可以参考下
这篇文章主要介绍了python中的 \r 与 end=‘’ 巧妙用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
这篇文章将详细讲解开始图像形态学知识,主要介绍图像腐蚀处理和膨胀处理。文中的示例代码简洁易懂,感兴趣的小伙伴快跟随小编一起学习一下吧
内存映射通常可以提高I/O的性能,因为使用内存映射时,不需要对每个访问都建立一个单独的系统调用,也不需要在缓冲区之间复制数据,内核和用户都能很方便的直接访问内存。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008