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 logging日志模块的详解
Oct 29 Python
Python获取当前公网ip并自动断开宽带连接实例代码
Jan 12 Python
更换Django默认的模板引擎为jinja2的实现方法
May 28 Python
终端命令查看TensorFlow版本号及路径的方法
Jun 13 Python
Python使用pyshp库读取shapefile信息的方法
Dec 29 Python
Python中最大递归深度值的探讨
Mar 05 Python
Python 读取串口数据,动态绘图的示例
Jul 02 Python
详解用python生成随机数的几种方法
Aug 04 Python
python实现二分类和多分类的ROC曲线教程
Jun 15 Python
python实例化对象的具体方法
Jun 17 Python
Python中random模块常用方法的使用教程
Oct 04 Python
Python调用REST API接口的几种方式汇总
Oct 19 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
自己前几天写的无限分类类
2007/02/14 PHP
php 使用post,get的一种简洁方式
2010/04/25 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
JavaScript判断窗口是否最小化的代码(跨浏览器)
2010/08/01 Javascript
吐槽一下我所了解的Node.js
2014/10/08 Javascript
javascript 回调函数详解
2014/11/11 Javascript
JavaScript模拟实现键盘打字效果
2015/06/29 Javascript
js时间戳转为日期格式的方法
2015/12/28 Javascript
jquery插件锦集【推荐】
2016/12/16 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
在vue-cli项目中使用bootstrap的方法示例
2018/04/21 Javascript
使用vue-cli导入Element UI组件的方法
2018/05/16 Javascript
vue-cli 2.*中导入公共less文件的方法步骤
2018/11/22 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
2019/04/30 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
详解Node.JS模块 process
2020/08/31 Javascript
[02:49]DAC2018决赛日TOP5 LGD开启黑暗之门绝杀VP
2018/04/08 DOTA
[40:03]RNG vs VG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
Python中的条件判断语句基础学习教程
2016/02/07 Python
python如何实现反向迭代
2018/03/20 Python
Django 根据数据模型models创建数据表的实例
2018/05/27 Python
python装饰器练习题及答案
2019/11/01 Python
python中的函数递归和迭代原理解析
2019/11/14 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
酒店保洁主管岗位职责
2013/11/28 职场文书
师范院校学生自荐信范文
2013/12/27 职场文书
《雕塑之美》教学反思
2014/04/24 职场文书
国家助学贷款承诺书
2015/04/30 职场文书
pytorch 如何使用float64训练
2021/05/24 Python
MySQL 全文检索的使用示例
2021/06/07 MySQL
Python写情书? 10行代码展示如何把情书写在她的照片里
2022/04/21 Python
如何vue使用el-table遍历循环表头和表体数据
2022/04/26 Vue.js