码迷,mamicode.com
首页 > 编程语言 > 详细

python 在内存中读写:StringIO / BytesIO

时间:2018-07-23 18:39:20      阅读:404      评论:0      收藏:0      [点我收藏+]

标签:exp   python2   ant   font   expect   imp   pad   byte   error:   



操作字符串,使用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'\xe4\xb8\xad\xe6\x96\x87'




python 在内存中读写:StringIO / BytesIO

标签:exp   python2   ant   font   expect   imp   pad   byte   error:   

原文地址:http://blog.51cto.com/13502993/2149155

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!