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实现计算资源图标crc值的方法
Oct 05 Python
python通过floor函数舍弃小数位的方法
Mar 17 Python
python 打印对象的所有属性值的方法
Sep 11 Python
python 采集中文乱码问题的完美解决方法
Sep 27 Python
Python实现将Excel转换成xml的方法示例
Aug 25 Python
Python unittest单元测试框架总结
Sep 08 Python
解析Python的缩进规则的使用
Jan 16 Python
python SQLAlchemy 中的Engine详解
Jul 04 Python
解决Django中调用keras的模型出现的问题
Aug 07 Python
Pandas DataFrame中的tuple元素遍历的实现
Oct 23 Python
Python for i in range ()用法详解
Sep 18 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
Dec 14 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
php数组保存文本与文本反编成数组实例
2014/11/13 PHP
php获取'/'传参的值简单方法
2017/07/13 PHP
laravel自定义分页效果
2017/07/23 PHP
JS之小练习代码
2008/10/12 Javascript
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
深入理解JavaScript系列(39):设计模式之适配器模式详解
2015/03/04 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
React+Webpack快速上手指南(小结)
2018/08/15 Javascript
Vue开发实现吸顶效果的示例代码
2018/08/21 Javascript
你或许不知道的一些npm实用技巧
2019/07/04 Javascript
js 递归json树实现根据子id查父id的方法分析
2019/11/08 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
JS实现简易日历效果
2021/01/25 Javascript
使用Python写CUDA程序的方法
2017/03/27 Python
python2 与python3的print区别小结
2018/01/16 Python
Python3实现将本地JSON大数据文件写入MySQL数据库的方法
2018/06/13 Python
python矩阵的转置和逆转实例
2018/12/12 Python
python 提取tuple类型值中json格式的key值方法
2018/12/31 Python
Python远程视频监控程序的实例代码
2019/05/05 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
2019/06/13 Python
python爬虫中多线程的使用详解
2019/09/23 Python
Keras 加载已经训练好的模型进行预测操作
2020/06/17 Python
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
一个J2EE项目团队的主要人员组成是什么
2012/06/04 面试题
员工自我鉴定范文
2013/10/06 职场文书
大学生军训自我评价分享
2013/11/09 职场文书
ktv好的活动方案
2014/08/15 职场文书
跟班学习心得体会(共6篇)
2016/01/23 职场文书
写作技巧:怎样写好一份优秀工作总结?
2019/08/14 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript