2013-02-13 35 views
6

Tôi đang đọc tệp nhị phân (ogg vorbis) và trích xuất một số gói để xử lý sau. Các gói này là các đối tượng byte python và chúng ta sẽ đọc chúng với phương thức "read (n_bytes)". Bây giờ mã của tôi là một cái gì đó như thế này:Cách đọc byte dưới dạng dòng trong python 3

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

Và tôi muốn một cái gì đó như thế này:

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

Làm thế nào tôi có thể tạo ra một dòng có thể đọc được từ một đối tượng byte?

Trả lời

10

Bạn có thể sử dụng một đối tượng io.BytesIO tập tin giống như

>>> import io 
>>> file = io.BytesIO(b'this is a byte string') 
>>> file.read(2) 
b'th' 
>>> file.read(2) 
b'is' 
Các vấn đề liên quan