想喝猪肝汤

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

StringIO

顾名思义,就是在内存中读写str

要把str写入StringIO,需要先创建一个StringIO, 然后像文件一样写入:

# 写StringIO
from io import StringIO
f = StringIO()
print(f.write('hello'))
print(f.write(' '))
print(f.write('world!'))
print(f.getvalue())
5
1
6
hello world!

getvalue()方法用于获得写入后的str

读取StringIO,先用一个str 初始化StringIO,然后像读文件一样读取:

from io import StringIO
f = StringIO('Hello!\nHi!\nGoodbye!')
while True:
    s = f.readline()
    if s == '':
        break
    print(s.strip())
Hello!
Hi!
Goodbye!

ByesIO

BytesIO实现了在内存中读写bytes,创建一个BytesIO,然后写入一些bytes:

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

值得注意的是,写入的不是str,而是经过UTF-8编码的bytes

读取也是一样

from io import BytesIO
f = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87')
f.read()
b'\xe4\xb8\xad\xe6\x96\x87'
posted on 2018-10-31 15:24  想喝猪肝汤  阅读(141)  评论(0编辑  收藏  举报