查看: 1825|回复: 2

BytesIO

[复制链接]

665

主题

1234

帖子

6683

积分

xdtech

Rank: 5Rank: 5

积分
6683
发表于 2020-12-23 19:32:11 | 显示全部楼层 |阅读模式
StringIO操作的只能是str,如果要操作二进制数据,就需要使用BytesIO。
BytesIO实现了在内存中读写bytes,我们创建一个BytesIO,然后写入一些bytes:
>>> from io import BytesIO>>> f = BytesIO()>>> f.write('中文'.encode('utf-8'))6>>> print(f.getvalue())b'\xe4\xb8\xad\xe6\x96\x87'
请注意,写入的不是str,而是经过UTF-8编码的bytes。
和StringIO类似,可以用一个bytes初始化BytesIO,然后,像读文件一样读取:
>>> from io import BytesIO>>> f = BytesIO(b'\xe4\xb8\xad\xe6\x96\x87')>>> f.read()b'\xe4\xb8\xad\xe6\x96\x87'
回复

使用道具 举报

665

主题

1234

帖子

6683

积分

xdtech

Rank: 5Rank: 5

积分
6683
 楼主| 发表于 2020-12-23 19:32:23 | 显示全部楼层
StringIO和BytesIO是在内存中操作str和bytes的方法,使得和读写文件具有一致的接口。

回复

使用道具 举报

665

主题

1234

帖子

6683

积分

xdtech

Rank: 5Rank: 5

积分
6683
 楼主| 发表于 2020-12-23 19:32:38 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表