2012-06-05 50 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是一個非常好的答案,但另一種方法是改爲使用cut方法,該方法返回給定長度的位串的生成器,所以只是

for packet in eventList.cut(24): 

應該工作。

+0

非常方便的解決方案,謝謝! – HWende

相關問題