2012-06-05 15 views
5

できるだけ多くの24ビットのチャンクをファイルから読みたいと思います。 ビットストリング 'ConstBitStream を使用してこれを行うにはどうすればいいですか?bitstringで完全なファイルを読む方法

現在、私はこれを実行します。

eventList = ConstBitStream(filename = 'events.dat') 
for i in range(1000) : 
    packet = eventList.read(24) 

(ここでは、私は事前にイベントの数を計算する必要がある)

答えて

4

をReadErrorのexeptionが

キャッチ
try: 
    while True: 
     packet = eventList.read(24) 
except ReadError: 
    pass 
+0

'ReadError'は' bitstring'例外です。 'bitstring'からインポートするか、' bitstring.ReadError'として使う必要があります。 – TheMeaningfulEngineer

3

を発生するまであなたが読むことができますReadErrorは完全に良い答えですが、もう1つの方法は、cutメソッドを使用することです。このメソッドは、指定された長さのビットストリングのジェネレータを返します。だからちょうど

for packet in eventList.cut(24): 

は動作するはずです。

+0

非常に便利なソリューションです、ありがとう! – HWende

関連する問題