Python StringIO如何在内存中读写str


Posted in Python onJanuary 07, 2020

这篇文章主要介绍了python StringIO如何在内存中读写str,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

StringIO

很多时候,数据读写不一定是文件,也可以在内存中读写。StringIO就是在内存中读写str

from io import StringIO
ff = StringIO('Hello!\nHi!\nGoodbye!')
f = StringIO()  #创建StringIO对象--可以看做在内存中的文件
i=f.write('hello我是中国人\n') #写入字符串,自动移动读写指针
#返回值:返回字符串个数
i=f.write('李明\n')
f.write('中国\n')
str=f.getvalue() #读取字符串(全部)
#不操作指针

ss=f.seek(0) #移动读写指针
"""参数2:
为0时代表从文件开头开始算起
1代表从当前位置开始算起
2代表从文件末尾算起 ??
如果操作成功,则返回新的指针位置,如果操作失败,则函数返回 -1
"""
s=f.tell() #返回当前读写位置
# s = f.readline() #从当前位置开始读取一行,包括\n;自动移动读写指针
#s = f.readline(3) #从当前位置开始读取一行,包括\n;自动移动读写指针
# 参数 读取的最大字符数

#s=f.readlines()  #读取所有行,返回一个字符串列表;;自动移动读写指针
#['hello我是中国人\n', '李明\n', '中国\n']

#s = f.readlines(2) #读取指定行,返回一个字符串列表;自动移动读写指针

#f.flush() #刷新
#s=f.read() # 读取全部内容;自动移动读写指针
#s=f.read(5)  #从当前位置开始读取的最大字符数
#f.truncate(3) #保留最前面的n个字符数,其它都删除

f.close() #关闭

BytesIO

StringIO操作的只能是str,如果要操作二进制数据,就需要使用BytesIO

BytesIO实现了在内存中读写bytes

from io import BytesIO

# 方式一
f = BytesIO()  #创建BytesIO对象
i=f.write('中文\n'.encode('utf-8')) #写入字符串--字节形式
#返回值:写入的字节数;注意不是字符数

f.write('中国'.encode('utf-8'))

x=f.getvalue() #获取字符串(全部)--字节形式
# b'\xe4\xb8\xad\xe6\x96\x87'


# 方式二:可以用一个bytes初始化BytesIO,然后,像读文件一样读取
ff = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87')
y=ff.read() #读取字节

print(y)

优点:StringIO和BytesIO是在内存中操作str和bytes的方法,使得读写具有一致的速度

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

Python 相关文章推荐
python多线程抓取天涯帖子内容示例
Apr 03 Python
Windows8下安装Python的BeautifulSoup
Jan 22 Python
Python实现PS滤镜中马赛克效果示例
Jan 20 Python
python顺序的读取文件夹下名称有序的文件方法
Jul 11 Python
python3.6.3转化为win-exe文件发布的方法
Oct 31 Python
利用Python将文本中的中英文分离方法
Oct 31 Python
浅谈Django中view对数据库的调用方法
Jul 18 Python
python GUI库图形界面开发之PyQt5访问系统剪切板QClipboard类详细使用方法与实例
Feb 27 Python
基于python 凸包问题的解决
Apr 16 Python
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
Apr 27 Python
Win10下用Anaconda安装TensorFlow(图文教程)
Jun 18 Python
解决Python字典查找报Keyerror的问题
May 26 Python
Python内置数据类型list各方法的性能测试过程解析
Jan 07 #Python
python模拟实现斗地主发牌
Jan 07 #Python
python全局变量引用与修改过程解析
Jan 07 #Python
python__new__内置静态方法使用解析
Jan 07 #Python
Python常用模块sys,os,time,random功能与用法实例分析
Jan 07 #Python
python单例设计模式实现解析
Jan 07 #Python
Python字典生成式、集合生成式、生成器用法实例分析
Jan 07 #Python
You might like
先进的自动咖啡技术,真的可以取代咖啡师吗?
2021/03/06 冲泡冲煮
php使用PDO执行SQL语句的方法分析
2017/02/16 PHP
PHP迭代器和生成器用法实例分析
2019/09/28 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
PHP 使用位运算实现四则运算的代码
2021/03/09 PHP
js的toLowerCase方法用法实例
2015/01/27 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
js简单设置与使用cookie的方法
2016/01/22 Javascript
第一次接触JS require.js模块化工具
2016/04/17 Javascript
JavaScript中各种引用类型的常用操作方法小结
2016/05/05 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
详解webpack+ES6+Sass搭建多页面应用
2018/11/05 Javascript
js序列化和反序列化的使用讲解
2019/01/19 Javascript
vue获取时间戳转换为日期格式代码实例
2019/04/17 Javascript
JS数组中对象去重操作示例
2019/06/04 Javascript
JavaScript中callee和caller的区别与用法实例分析
2019/06/28 Javascript
JS前端模块化原理与实现方法详解
2020/03/17 Javascript
ES5新增数组的实现方法
2020/05/12 Javascript
js实现全选和全不选功能
2020/07/28 Javascript
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
[37:03]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第二场 12.16
2020/12/18 DOTA
在Python中操作字典之clear()方法的使用
2015/05/21 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
Python延时操作实现方法示例
2018/08/14 Python
python 实现多维数组(array)排序
2020/02/28 Python
基于python检查SSL证书到期情况代码实例
2020/04/04 Python
浅谈python3打包与拆包在函数的应用详解
2020/05/02 Python
将python字符串转化成长表达式的函数eval实例
2020/05/11 Python
CSS3新增布局之: flex详解
2020/06/18 HTML / CSS
澳大利亚领先的在线美容商城:Adore Beauty
2017/04/14 全球购物
通信专业个人自我鉴定
2013/10/21 职场文书
简单租房协议书
2014/04/09 职场文书
幼儿园户外活动总结
2014/07/04 职场文书
800字作文之大雪
2019/12/04 职场文书