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的三目运算符和not in运算符使用示例
Mar 03 Python
利用打码兔和超人打码自封装的打码类分享
Mar 16 Python
Python栈类实例分析
Jun 15 Python
python3 requests中使用ip代理池随机生成ip的实例
May 07 Python
Python Json模块中dumps、loads、dump、load函数介绍
May 15 Python
python使用turtle绘制分形树
Jun 22 Python
python实现一个简单的ping工具方法
Jan 31 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
Sep 20 Python
python隐藏类中属性的3种实现方法
Dec 19 Python
python3通过udp实现组播数据的发送和接收操作
May 05 Python
python爬虫泛滥的解决方法详解
Nov 25 Python
python利用while求100内的整数和方式
Nov 07 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中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串
2011/08/23 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
PHP设计模式之简单投诉页面实例
2016/02/24 PHP
Laravel 的数据库迁移的方法
2017/07/31 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
js更优雅的兼容
2010/08/12 Javascript
基于jquery的地址栏射击游戏代码
2011/03/10 Javascript
JavaScript创建对象的写法
2013/08/29 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
使用jQuery处理AJAX请求的基础学习教程
2016/05/10 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
2016/06/12 Javascript
EditPlus中的正则表达式 实战(2)
2016/12/15 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
使用webpack打包koa2 框架app
2018/02/02 Javascript
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
微信小程序使用map组件实现获取定位城市天气或者指定城市天气数据功能
2019/01/22 Javascript
Openlayers实现距离面积测量
2020/09/28 Javascript
Python subprocess模块学习总结
2014/03/13 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
TensorFlow神经网络优化策略学习
2018/03/09 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
windows下的pycharm安装及其设置中文菜单
2020/04/23 Python
filter使用python3代码进行迭代元素的实例详解
2020/12/03 Python
html5组织内容_动力节点Java学院整理
2017/07/10 HTML / CSS
Android面试题附答案
2014/12/08 面试题
化工专业个人的求职信范文
2013/11/28 职场文书
团员个人的自我评价
2013/12/02 职场文书
送货司机岗位职责
2013/12/11 职场文书
学子宴答谢词
2014/01/25 职场文书
关于安全的标语
2014/06/10 职场文书
天下第一关导游词
2015/02/06 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
工作会议简报
2015/07/20 职场文书