python 在内存中读写:StringIO / BytesIO

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 在内存中读写:StringIO / BytesIO相关的知识,希望对你有一定的参考价值。



操作字符串,使用StringIO

#!/usr/bin/python
# -*- coding: utf-8 -*-

from io import StringIO

f = StringIO()
f.write('hello')

print(f.getvalue())

运行结果:

Traceback (most recent call last):
  File "stringio.py", line 6, in <module>
    f.write('hello')
TypeError: unicode argument expected, got 'str'

在python 2.7版本中出错,在python 3版本中正常运行,于是百度了一下,把

from io import StringIO

改为

from io import BytesIO as StringIO


继续在python2.7版本中运行,正常了。

#!/usr/bin/python
# -*- coding: utf-8 -*-

#from io import StringIO
#from io import BytesIO
from io import BytesIO as StringIO
f = StringIO()
f.write('hello')

print(f.getvalue())

运行结果:

hello




操作二进制文件,使用BytesIO

以下代码在python2.7运行又有问题,目前时间不够,为节省时间,在python3平台运行,成功

#!/usr/bin/python
# -*- coding: utf-8 -*-

from io import BytesIO
f = BytesIO()
f.write('中文'.encode('utf-8'))
print(f.getvalue())

运行结果:

hello
b'xe4xb8xadxe6x96x87'




以上是关于python 在内存中读写:StringIO / BytesIO的主要内容,如果未能解决你的问题,请参考以下文章

Python StringIO实现内存缓冲区中读写数据

Python文件读写StringIO和BytesIO

python学习——StringIO和BytesIO

内存数据的读取

Python学习笔记(二十四)StringIO和BytesIO

Python学习笔记__9.2章 StringIO 和 BytesIO