2013-02-13 19 views
6

में स्ट्रीम के रूप में बाइट्स को कैसे पढ़ा जाए, मैं एक बाइनरी फ़ाइल (ओग vorbis) पढ़ रहा हूं और बाद में प्रसंस्करण के लिए कुछ पैकेट निकालने जा रहा हूं। ये पैकेट पाइथन बाइट ऑब्जेक्ट्स हैं, और क्या हम उन्हें "read (n_bytes)" विधि के साथ उपयोगी पढ़ेंगे। अब मेरी कोड कुछ इस तरह है:पायथन 3

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) 

मैं एक बाइट वस्तु से एक पठनीय धारा बना सकते हैं कैसे?

उत्तर

10

आप एक io.BytesIO फ़ाइल जैसी वस्तु का उपयोग कर सकते

>>> import io 
>>> file = io.BytesIO(b'this is a byte string') 
>>> file.read(2) 
b'th' 
>>> file.read(2) 
b'is'