39

バイナリファイル(ogg vorbis)を読み取り、後で処理するためにいくつかのパケットを抽出しています。これらのパケットはPythonバイトオブジェクトであり、「read(n_bytes)」メソッドを使用して読み取ると便利です。今私のコードは次のようなものです:

packet = b'abcd'
some_value = packet[0:2]
other_value = packet[2:4]

そして、私はこのようなものが欲しいです:

packet = b'abcd'
some_value = packet.read(2)
other_value = packet.read(2)

バイトオブジェクトから読み取り可能なストリームを作成するにはどうすればよいですか?

4

1 に答える 1

51

io.BytesIOファイルのようなオブジェクトを使用できます

>>> import io
>>> file = io.BytesIO(b'this is a byte string')
>>> file.read(2)
b'th'
>>> file.read(2)
b'is'
于 2013-02-13T17:41:40.847 に答える