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爬虫之抓取百度贴吧并存储到本地txt文件改进版
Nov 06 Python
Python读取环境变量的方法和自定义类分享
Nov 22 Python
浅谈python字典多键值及重复键值的使用
Nov 04 Python
Python基于高斯消元法计算线性方程组示例
Jan 17 Python
python通过tcp发送xml报文的方法
Dec 28 Python
Python判断是否json是否包含一个key的方法
Dec 31 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
Jul 14 Python
Python 二叉树的层序建立与三种遍历实现详解
Jul 29 Python
python实现大量图片重命名
Mar 23 Python
Python如何实现在字符串里嵌入双引号或者单引号
Mar 02 Python
Python selenium爬取微信公众号文章代码详解
Aug 12 Python
python中pycryto实现数据加密
Apr 29 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
高分R级DC动画剧《哈莉·奎茵》第二季正式预告首发
2020/04/09 欧美动漫
从PHP $_SERVER相关参数判断是否支持Rewrite模块
2013/09/26 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
jquery移动listbox的值原理及代码
2013/05/03 Javascript
jQuery循环滚动新闻列表示例代码
2014/06/17 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
Css3制作变形与动画效果
2015/07/24 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
2016/06/01 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
HTML5基于Tomcat 7.0实现WebSocket连接并实现简单的实时聊天
2016/10/31 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
微信扫码支付零云插件版实例详解
2017/04/26 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
2017/05/19 jQuery
vue初尝试--项目结构(推荐)
2018/01/30 Javascript
对vue 键盘回车事件的实例讲解
2018/08/25 Javascript
微信小程序顶部导航栏滑动tab效果
2019/01/28 Javascript
vue-cli history模式实现tomcat部署报404的解决方式
2019/09/06 Javascript
layui lay-verify form表单自定义验证规则详解
2019/09/18 Javascript
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
[59:30]完美世界DOTA2联赛PWL S3 access vs LBZS 第二场 12.20
2020/12/23 DOTA
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
python机器学习之神经网络(一)
2017/12/20 Python
python 寻找优化使成本函数最小的最优解的方法
2017/12/28 Python
python组合无重复三位数的实例
2018/11/13 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
Django数据统计功能count()的使用
2020/11/30 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
Linux如何命名文件--使用文件名时应注意
2014/05/29 面试题
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
辩论赛主持词
2014/03/18 职场文书
财务管理专业求职信
2014/06/11 职场文书
小学生交通安全寄语
2015/02/27 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
2015秋学期开学寄语
2015/05/28 职场文书
浅谈Vue的computed计算属性
2022/03/21 Vue.js