6

我想从文件中读取尽可能多的 24 位块。 当我现在不知道有多少块时,如何使用位串的ConstBitStream来做到这一点?

目前我这样做:

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

(这里我要预先计算事件的数量)

4

2 回答 2

5

您可以阅读直到生成 ReadError 异常

try:
    while True:
        packet = eventList.read(24)
except ReadError:
    pass
于 2012-06-05T08:50:09.663 回答
3

捕捉ReadError是一个非常好的答案,但另一种方法是使用cut方法,该方法返回给定长度的位串的生成器,所以只需

for packet in eventList.cut(24):

应该管用。

于 2012-06-05T09:40:56.037 回答