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 字符串中的字符倒转
Sep 06 Python
python中的sort方法使用详解
Jul 25 Python
python使用装饰器和线程限制函数执行时间的方法
Apr 18 Python
Python读写配置文件的方法
Jun 03 Python
python实现遍历文件夹修改文件后缀
Aug 28 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
Jul 16 Python
解决python3插入mysql时内容带有引号的问题
Mar 02 Python
超全Python图像处理讲解(多模块实现)
Apr 13 Python
python 6行代码制作月历生成器
Sep 18 Python
详解用python -m http.server搭一个简易的本地局域网
Sep 24 Python
selenium判断元素是否存在的两种方法小结
Dec 07 Python
pandas时间序列之pd.to_datetime()的实现
Jun 16 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之第八天
2006/10/09 PHP
php分页函数示例代码分享
2014/02/24 PHP
php通过baihui网API实现读取word文档并展示
2015/06/22 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
2017/08/15 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
扩展jQuery 键盘事件的几个基本方法
2009/10/30 Javascript
js 获取服务器控件值的代码
2010/03/05 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
jquery简单图片切换显示效果实现方法
2015/01/14 Javascript
javascript表单验证大全
2015/08/12 Javascript
基于jquery实现图片上传本地预览功能
2016/01/08 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
vue+jquery+lodash实现滑动时顶部悬浮固定效果
2018/04/28 jQuery
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
VUE中使用MUI方法
2019/02/12 Javascript
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
2019/12/27 Javascript
jquery实现图片无缝滚动 蒙版遮蔽效果
2020/01/11 jQuery
python中将阿拉伯数字转换成中文的实现代码
2011/05/19 Python
Python编程实现两个文件夹里文件的对比功能示例【包含内容的对比】
2017/06/20 Python
Python TestCase中的断言方法介绍
2019/05/02 Python
tensorflow多维张量计算实例
2020/02/11 Python
Python多线程thread及模块使用实例
2020/04/28 Python
Python如何避免文件同名产生覆盖
2020/06/09 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
你对IPv6了解程度
2016/02/09 面试题
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
2014年自我评价
2014/01/04 职场文书
房产委托公证书
2014/04/08 职场文书
高中毕业典礼演讲稿
2014/09/09 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
MySQL的索引你了解吗
2022/03/13 MySQL
springboot创建的web项目整合Quartz框架的项目实践
2022/06/21 Java/Android