Python实现不写硬盘上传文件

 更新时间:2022年07月14日 17:25:46   作者:ponponon  
这篇文章主要为大家介绍了Python实现不写硬盘上传文件的方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

你写了一个 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

使用 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') 替换为字符串。为此我想到的办法是把字符串先写到硬盘上,在按照上面的代码上传,可是这太低效率(硬盘太低效率),平白无故多了两次硬盘读写操作,我想直接把内存中的字符串按照文件上传有什么办法吗?

 参考文档

https://docs.python.org/zh-cn/3/library/io.html#io.StringIO

以上就是Python实现不写硬盘上传文件的详细内容,更多关于Python不写硬盘上传文件的资料请关注脚本之家其它相关文章!

相关文章

  • python微信公众号开发简单流程

    python微信公众号开发简单流程

    这篇文章主要介绍了python微信公众号开发的相关资料,分步骤为大家分享python微信公众号开发,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • django基于restframework的CBV封装详解

    django基于restframework的CBV封装详解

    这篇文章主要介绍了django基于restframework的CBV封装详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python的列表和元组详情

    Python的列表和元组详情

    这篇文章主要介绍了Python的列表和元组,列表和元组是python组常见的内置内省,下面文章我们讲围绕Python的列表和元组的相关资料展开话题,感兴趣的小伙伴以参考一下
    2021-10-10
  • PyTorch上搭建简单神经网络实现回归和分类的示例

    PyTorch上搭建简单神经网络实现回归和分类的示例

    本篇文章主要介绍了PyTorch上搭建简单神经网络实现回归和分类的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • Python连接MySQL数据库的简单便捷方法

    Python连接MySQL数据库的简单便捷方法

    在数据分析过程中往往要操作较大的数据集,这就需要连接数据库进行操作,下面这篇文章主要给大家介绍了关于Python连接MySQL数据库的简单便捷方法,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • Python操作SQLite数据库的方法详解

    Python操作SQLite数据库的方法详解

    这篇文章主要介绍了Python操作SQLite数据库的方法,较为详细的分析了Python安装sqlite数据库模块及针对sqlite数据库的常用操作技巧,需要的朋友可以参考下
    2017-06-06
  • Python3如何在Windows和Linux上打包

    Python3如何在Windows和Linux上打包

    这篇文章主要介绍了Python3如何在Windows和Linux上打包,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Spring @Enable模块驱动原理及使用实例

    Spring @Enable模块驱动原理及使用实例

    这篇文章主要介绍了Spring @Enable模块驱动原理及使用实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 构建可视化 web的 Python 神器streamlit

    构建可视化 web的 Python 神器streamlit

    这篇文章主要介绍了构建可视化web的Python神器streamlit,Streamlit是一个用于机器学习、数据可视化的Python框架,它能几行代码就构建出一个精美的在线app应用
    2022-06-06
  • 使用pytorch加载并读取COCO数据集的详细操作

    使用pytorch加载并读取COCO数据集的详细操作

    这篇文章主要介绍了使用pytorch加载并读取COCO数据集,基础知识包括元祖、字典、数组,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05

最新评论