Python内存读写操作示例


Posted in Python onJuly 18, 2018

本文实例讲述了Python内存读写操作。分享给大家供大家参考,具体如下:

Python中的读写不一定只是文件,还有可能是内存,所以下面实在内存中的读写操作

示例1:

# -*- coding:utf-8 -*-
#! python3
from io import StringIO
f=StringIO()
f.write('everything')
f.write('is')
f.write('possible')
print(f.getvalue())

运行结果:

everythingispossible

在内存中新建一个StringIO,然后进行写入

获取的时候用的是getvalue()函数

而读取的时候可以用一个循环判断,比如:

示例2:

# -*- coding:utf-8 -*-
#! python3
f=StringIO('everything is possible')
while True:
  s=f.readline()
  if s=='':
    break
  print(s.strip())

运行结果:

everything is possible

同理,可以操作不只是str,还可以是二进制数据,所以会用到BytesIO

from io import BytesIO
>>> f = BytesIO()
>>> f.write('中文'.encode('utf-8'))
6
>>> print(f.getvalue())
b'\xe4\xb8\xad\xe6\x96\x87'

如下图所示:

 Python内存读写操作示例

而写入同时也是:

>>> from io import BytesIO
>>> f = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87')
>>> f.read()
b'\xe4\xb8\xad\xe6\x96\x87'

注:这里的测试环境为Python3,如果使用Python2运行上述示例1的话会提示如下错误:

Traceback (most recent call last):
  File "C:\py\3waterPyDemo\src\Demo\strIODemo.py", line 5, in <module>
    f.write('everything')
TypeError: unicode argument expected, got 'str'

解决方法为将

from io import StringIO

更换成:

from io import BytesIO as StringIO

即可运行得到正常结果!

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python的Django中django-userena组件的简单使用教程
May 30 Python
python使用fork实现守护进程的方法
Nov 16 Python
利用Python如何实现一个小说网站雏形
Nov 23 Python
python实现微信定时每天和女友发送消息
Apr 29 Python
python递归法实现简易连连看小游戏
Mar 25 Python
pandas DataFrame的修改方法(值、列、索引)
Aug 02 Python
Python3从零开始搭建一个语音对话机器人的实现
Aug 23 Python
解决python中import文件夹下面py文件报错问题
Jun 01 Python
Python经典五人分鱼实例讲解
Jan 04 Python
pyqt5打包成exe可执行文件的方法
May 14 Python
Python+Appium实现自动抢微信红包
May 21 Python
Python socket如何解析HTTP请求内容
Feb 12 Python
NumPy 数学函数及代数运算的实现代码
Jul 18 #Python
Sanic框架应用部署方法详解
Jul 18 #Python
Python Web编程之WSGI协议简介
Jul 18 #Python
使用 Python 实现文件递归遍历的三种方式
Jul 18 #Python
详解flask入门模板引擎
Jul 18 #Python
Sanic框架基于类的视图用法示例
Jul 18 #Python
flask入门之表单的实现
Jul 18 #Python
You might like
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
2009/06/08 PHP
PHP中的函数-- foreach()的用法详解
2013/06/24 PHP
PHP正则替换函数preg_replace和preg_replace_callback使用总结
2014/09/22 PHP
PHP has encountered a Stack overflow问题解决方法
2014/11/03 PHP
PHP使用token防止表单重复提交的方法
2016/04/07 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
jquery 获取json数据实现代码
2009/04/27 Javascript
BOM与DOM的区别分析
2010/10/26 Javascript
JavaScript 判断日期格式是否正确的实现代码
2011/07/04 Javascript
常用的几段javascript代码分享
2014/03/25 Javascript
javascript实现十秒钟后注册按钮可点击的方法
2015/05/13 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)
2016/11/09 Javascript
easyui combotree加载静态数据问题(选不上)解决方法
2016/12/26 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
2018/04/11 jQuery
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
2019/11/12 Javascript
[02:43]2014DOTA2国际邀请赛 官方Alliance战队纪录片
2014/07/14 DOTA
35个Python编程小技巧
2014/04/01 Python
使用python绘制人人网好友关系图示例
2014/04/01 Python
50行Python代码实现人脸检测功能
2018/01/23 Python
详解Python中的动态属性和特性
2018/04/07 Python
python画一个玫瑰和一个爱心
2020/08/18 Python
python django 原生sql 获取数据的例子
2019/08/14 Python
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解
2020/02/11 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
属性与 @property 方法让你的python更高效
2020/09/21 Python
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
为什么说Ruby是一种真正的面向对象程序设计语言
2012/10/30 面试题
经济系大学生求职信
2013/10/01 职场文书
先进事迹材料怎么写
2014/12/30 职场文书
感恩节寄语2015
2015/03/24 职场文书
幼儿园见习总结
2015/06/23 职场文书
培训后的感想
2015/08/07 职场文书
MySQL 百万级数据的4种查询优化方式
2021/06/07 MySQL
Java实现注册登录跳转
2022/06/16 Java/Android