Python内存读写操作示例

yipeiwu_com7年前Python基础

本文实例讲述了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'

如下图所示:

 

而写入同时也是:

>>> 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\jb51PyDemo\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数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

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

相关文章

python getopt详解及简单实例

 python getopt详解 函数原型: getopt.getopt(args, shortopts, longopts=[]) 参数解释: args:args...

解决Python 使用h5py加载文件,看不到keys()的问题

python 3.x 环境下,使用h5py加载HDF5文件,查看keys,如下: >>> import h5py >>> f = h5py.Fil...

python中类的输出或类的实例输出为&lt;__main__类名 object at xxxx&gt;这种形式的原因

python中类的输出或类的实例输出为&lt;__main__类名 object at xxxx&gt;这种形式的原因

原因: __str__()这个特殊方法将对象转换为字符串的结果 效果图: 代码:  # 定义一个Person类 class Person(object): """人类...

在python中实现同行输入/接收多个数据的示例

在python中实现同行输入/接收多个数据的示例

在使用python去AC题时总会遇到这样的问题,题目要求同行输入一组数据,但是你使用input时却不能做到,导致不断的CE,这个时候怎么样来解决的这个问题呢? 很简单,只需要使用inpu...

python求crc32值的方法

本文实例讲述了python求crc32值的方法。分享给大家供大家参考。具体实现方法如下: 要想求CRC值,前面要import binascii binascii.crc32(v)&nbs...