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实现同时给多个变量赋值的方法
Apr 30 Python
python list排序的两种方法及实例讲解
Mar 20 Python
Python3操作SQL Server数据库(实例讲解)
Oct 21 Python
利用python将xml文件解析成html文件的实现方法
Dec 22 Python
python中logging包的使用总结
Feb 28 Python
python3实现域名查询和whois查询功能
Jun 21 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
Jul 09 Python
python 利用pyttsx3文字转语音过程详解
Sep 25 Python
解决pytorch报错:AssertionError: Invalid device id的问题
Jan 10 Python
Django Session和Cookie分别实现记住用户登录状态操作
Jul 02 Python
利用Python如何制作贪吃蛇及AI版贪吃蛇详解
Aug 24 Python
详解用Python把PDF转为Word方法总结
Apr 27 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
在smarty中调用php内置函数的方法
2013/02/07 PHP
php取出数组单个值的方法
2018/03/12 PHP
PHP常见过waf webshell以及最简单的检测方法
2019/05/21 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
firefo xml 读写实现js代码
2009/06/11 Javascript
javascript new一个对象的实质
2010/01/07 Javascript
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
用js一次改变多个input的readonly属性值的方法
2014/06/11 Javascript
javascript实现滚动效果的数字时钟实例
2016/07/21 Javascript
基于JavaScript Array数组方法(新手必看篇)
2016/08/20 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
详解vue+css3做交互特效的方法
2017/11/20 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
jQuery实现简单弹幕效果
2019/11/28 jQuery
记录一次websocket封装的过程
2020/11/23 Javascript
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
[10:18]2018DOTA2国际邀请赛寻真——Fnatic能否笑到最后?
2018/08/14 DOTA
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
跟老齐学Python之开始真正编程
2014/09/12 Python
Python中Threading用法详解
2017/12/27 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
django自定义模板标签过程解析
2019/12/14 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
Python: glob匹配文件的操作
2020/12/11 Python
python 数据类型强制转换的总结
2021/01/25 Python
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
英国Flybe航空官网:欧洲最大的独立支线廉价航空公司
2019/07/15 全球购物
保险经纪人求职信
2014/03/11 职场文书
学习型班组申报材料
2014/05/31 职场文书
践行三严三实心得体会
2014/10/13 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL