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中处理XML的教程
Apr 29 Python
python魔法方法-属性访问控制详解
Jul 25 Python
Python设计模式之抽象工厂模式
Aug 25 Python
浅析Python中yield关键词的作用与用法
Nov 29 Python
Python 专题三 字符串的基础知识
Mar 19 Python
利用Python找出序列中出现最多的元素示例代码
Dec 08 Python
python之从文件读取数据到list的实例讲解
Apr 19 Python
Python多继承以及MRO顺序的使用
Nov 11 Python
在Python中利用pickle保存变量的实例
Dec 30 Python
深入理解Tensorflow中的masking和padding
Feb 24 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
Mar 28 Python
教你怎么用python selenium实现自动化测试
May 27 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 用sock技术发送邮件的函数
2007/07/21 PHP
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
php实现简单加入购物车功能
2017/03/07 PHP
PHP实现通过CURL上传文件功能示例
2018/05/30 PHP
PHP fopen函数用法实例讲解
2019/02/15 PHP
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
小议Javascript中的this指针
2010/03/18 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
JS绘制生成花瓣效果的方法
2015/08/05 Javascript
基于JavaScript如何制作遮罩层对话框
2016/01/26 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
2016/06/12 Javascript
iframe中使用jquery进行查找的方法【案例分析】
2016/06/17 Javascript
javascript添加前置0(补零)的几种方法
2017/01/05 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
微信小程序实现上传图片裁剪图片过程解析
2019/08/22 Javascript
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
基于Cesium绘制抛物弧线
2020/11/18 Javascript
python3.x 将byte转成字符串的方法
2018/07/17 Python
python绘制直方图和密度图的实例
2019/07/08 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
python实现静态web服务器
2019/09/03 Python
python 字典的打印实现
2019/09/26 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
CSS3 清除浮动的方法示例
2018/06/01 HTML / CSS
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
触摸春天教学反思
2014/02/03 职场文书
生物制药专业自我鉴定
2014/02/19 职场文书
经典促销广告词大全
2014/03/19 职场文书
三万活动总结
2014/04/28 职场文书
学校政风行风评议工作总结
2014/10/21 职场文书
建党伟业观后感
2015/06/01 职场文书
Nginx域名转发https访问的实现
2021/03/31 Servers
js前端图片加载异常兜底方案
2022/06/21 Javascript