Python StringIO及BytesIO包使用方法解析


Posted in Python onJune 15, 2020

StringIO

它主要是用在内存读写str中。

主要用法就是:

from io import StringIO

f = StringIO()
f.write(‘12345‘)
print(f.getvalue())

f.write(‘54321‘)
f.write(‘abcde‘)

print(f.getvalue())

#打印结果
12345
1234554321abcde

也可以使用str初始化一个StringIO然后像文件一样读取。

f = StringIO(‘hello\nworld!‘)
while True:
  s = f.readline()
  if s == ‘‘:
    break
  print(s.strip()) #去除\n
#打印结果
hello
world!

BytesIO

想要操作二进制数据,就需要使用BytesIO。

当然包括视频、图片等等。

from io import BytesIO

f = BytesIO()
f.write(‘保存中文‘.encode(‘utf-8‘))

print(f.getvalue())
#打印结果
b‘\xe4\xbf\x9d\xe5\xad\x98\xe4\xb8\xad\xe6\x96\x87‘

请注意,写入的不是str,而是经过UTF-8编码的bytes。

存放图片

f = BytesIO()

image_open = open(‘./1.jpg‘, ‘rb‘)
f.write(image_open.read())

image_save = open(‘./2.jpg‘, ‘wb‘)
image_save.write(f.getvalue())

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python连接MySQL、MongoDB、Redis、memcache等数据库的方法
Nov 15 Python
python实现系统状态监测和故障转移实例方法
Nov 18 Python
Python实现批量转换文件编码的方法
Jul 28 Python
python简单实现刷新智联简历
Mar 30 Python
Python的Django框架中消息通知的计数器实现教程
Jun 13 Python
使用TensorFlow实现二分类的方法示例
Feb 05 Python
python语言基本语句用法总结
Jun 11 Python
Python笔记之facade模式
Nov 20 Python
记一次pyinstaller打包pygame项目为exe的过程(带图片)
Mar 02 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
Jun 17 Python
Python Pandas list列表数据列拆分成多行的方法实现
Dec 14 Python
Jupyter Notebook添加代码自动补全功能的实现
Jan 07 Python
Python smtp邮件发送模块用法教程
Jun 15 #Python
pandas数据处理之绘图的实现
Jun 15 #Python
keras中的loss、optimizer、metrics用法
Jun 15 #Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 #Python
基于python和flask实现http接口过程解析
Jun 15 #Python
基于nexus3配置Python仓库过程详解
Jun 15 #Python
Keras官方中文文档:性能评估Metrices详解
Jun 15 #Python
You might like
Linux系统递归生成目录中文件的md5的方法
2015/06/29 PHP
详解PHP匿名函数与注意事项
2016/03/29 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
实例说明为什么不要行内使用javascript
2014/04/18 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
2015/12/23 Javascript
js实现添加可信站点、修改activex安全设置,禁用弹出窗口阻止程序
2016/08/17 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
@ResponseBody 和 @RequestBody 注解的区别
2017/03/08 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
JavaScript 预解析的4种实现方法解析
2019/09/03 Javascript
vue解决使用$http获取数据时报错的问题
2019/10/30 Javascript
9种方法优化jQuery代码详解
2020/02/04 jQuery
JavaScript实现多球运动效果
2020/09/07 Javascript
vue使用openlayers实现移动点动画
2020/09/24 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
ubuntu安装sublime3并配置python3环境的方法
2018/03/15 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
python安装scipy的步骤解析
2019/09/28 Python
python基于event实现线程间通信控制
2020/01/13 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
在keras中实现查看其训练loss值
2020/06/16 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
利用纯html5绘制出来的一款非常漂亮的时钟
2015/01/04 HTML / CSS
美国家用电器和电子产品商店:Abt
2016/09/06 全球购物
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
Sisley法国希思黎中国官网:享誉全球的奢华植物美容品牌
2019/06/30 全球购物
工作证明范本(2篇)
2014/09/14 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
2015年第31个教师节致辞
2015/07/31 职场文书
2016年11月份红领巾广播稿
2015/12/21 职场文书
详解Python常用的魔法方法
2021/06/03 Python
图文详解matlab原始处理图像几何变换
2021/07/09 Python