如何在python 3中读取字节作为流

Jos*_*uis 19 python python-3.x

我正在读取二进制文件(ogg vorbis)并提取一些数据包以供以后处理.这些数据包是python bytes对象,我们可以使用"read(n_bytes)"方法读取它们.现在我的代码是这样的:

packet = b'abcd'
some_value = packet[0:2]
other_value = packet[2:4]
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

packet = b'abcd'
some_value = packet.read(2)
other_value = packet.read(2)
Run Code Online (Sandbox Code Playgroud)

如何从字节对象创建可读流?

JBe*_*rdo 24

您可以使用类似io.BytesIO文件的对象

>>> import io
>>> file = io.BytesIO(b'this is a byte string')
>>> file.read(2)
b'th'
>>> file.read(2)
b'is'
Run Code Online (Sandbox Code Playgroud)