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 相关文章推荐
Python3实现Web网页图片下载
Jan 28 Python
python 限制函数调用次数的实例讲解
Apr 21 Python
Python快速查找list中相同部分的方法
Jun 27 Python
一步步教你用python的scrapy编写一个爬虫
Apr 17 Python
Django框架使用mysql视图操作示例
May 15 Python
python程序快速缩进多行代码方法总结
Jun 23 Python
Python爬虫爬取杭州24时温度并展示操作示例
Mar 27 Python
简单介绍一下pyinstaller打包以及安全性的实现
Jun 02 Python
PyTorch实现重写/改写Dataset并载入Dataloader
Jul 14 Python
一篇文章搞懂python的转义字符及用法
Sep 03 Python
python 实现学生信息管理系统的示例
Nov 28 Python
Python 避免字典和元组的多重嵌套问题
Jul 15 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/06/05 PHP
Yii分页用法实例详解
2014/12/04 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
JS 图片缩放效果代码
2010/06/09 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
js弹出层包含flash 不能关闭隐藏的2种处理方法
2013/06/17 Javascript
jquery submit ie6下失效的原因分析及解决方法
2013/11/15 Javascript
js向上无缝滚动,网站公告效果 具体代码
2013/11/18 Javascript
JavaScript中的对象的extensible属性介绍
2014/12/30 Javascript
js获取域名的方法
2015/01/27 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
JS实现灵巧的下拉导航效果代码
2015/08/25 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
2016/11/10 Javascript
使用vue-cli编写vue插件的方法
2018/02/26 Javascript
Angularjs中date过滤器失效的问题及解决方法
2018/07/06 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
详解vue-cli 脚手架 安装
2019/04/16 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
vue-cli随机生成port源码的方法
2019/09/02 Javascript
vue3.0封装轮播图组件的步骤
2021/03/04 Vue.js
[02:32]DOTA2亚洲邀请赛 C9战队出场宣传片
2015/02/07 DOTA
[03:21]辉夜杯主赛事 12月25日TOP5
2015/12/26 DOTA
Python实现SVN的目录周期性备份实例
2015/07/17 Python
python日志记录模块实例及改进
2017/02/12 Python
Python探索之创建二叉树
2017/10/25 Python
Python求解任意闭区间的所有素数
2018/06/10 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
2019/02/19 Python
详解Python3中的 input() 函数
2020/03/18 Python
整理的15个非常有用的 HTML5 开发教程和速查手册
2011/10/18 HTML / CSS
营业员实习自我鉴定
2013/12/07 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
电气工程师岗位职责
2015/02/12 职场文书
2015年乡镇统计工作总结
2015/04/22 职场文书
《狼牙山五壮士》读后感:宁死不屈,视死如归
2019/08/16 职场文书
redis内存空间效率问题的深入探究
2021/05/17 Redis