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 相关文章推荐
Windows中安装使用Virtualenv来创建独立Python环境
May 31 Python
python实现对输入的密文加密
Mar 20 Python
Python批量删除只保留最近几天table的代码实例
Apr 01 Python
解决Tensorflow 内存泄露问题
Feb 05 Python
Python列表如何更新值
May 27 Python
10行Python代码实现Web自动化管控的示例代码
Aug 14 Python
python进度条显示-tqmd模块的实现示例
Aug 23 Python
利用python汇总统计多张Excel
Sep 22 Python
python绘制雷达图实例讲解
Jan 03 Python
深入理解Python变量的数据类型和存储
Feb 01 Python
pyqt5蒙版遮罩mask,setmask的使用
Jun 11 Python
Matplotlib绘制条形图的方法你知道吗
Mar 21 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中iconv函数使用方法
2008/05/24 PHP
深入分析php之面向对象
2013/05/15 PHP
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
php获取本周星期一具体日期的方法
2015/04/20 PHP
详谈PHP程序Laravel 5框架的优化技巧
2016/07/18 PHP
Laravel多用户认证系统示例详解
2018/03/13 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
2019/08/05 PHP
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
固定背景实现的背景滚动特效示例分享
2013/05/19 Javascript
JavaScript事件处理的方式(三种)
2016/04/26 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
JQuery 封装 Ajax 常用方法(推荐)
2017/05/21 jQuery
微信小程序之页面拦截器的示例代码
2017/09/07 Javascript
浅谈laytpl 模板空值显示null的解决方法及简单的js表达式
2019/09/19 Javascript
用Python计算三角函数之atan()方法的使用
2015/05/15 Python
python获取外网ip地址的方法总结
2015/07/02 Python
django项目搭建与Session使用详解
2018/10/10 Python
基于Python的ModbusTCP客户端实现详解
2019/07/13 Python
图文详解Django使用Pycharm连接MySQL数据库
2019/08/09 Python
pycharm 关掉syntax检查操作
2020/06/09 Python
使用已经得到的keras模型识别自己手写的数字方式
2020/06/29 Python
编写python代码实现简单抽奖器
2020/10/20 Python
HTML5头部标签的一些常用信息小结
2016/10/23 HTML / CSS
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
印刷工程专业应届生求职信
2013/09/29 职场文书
保安的辞职报告怎么写
2014/01/20 职场文书
投标担保书范文
2014/04/02 职场文书
农业项目建议书
2014/08/25 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
总经理检讨书范文
2015/02/16 职场文书
应届生们该怎么书写求职信?
2019/07/05 职场文书