2012-06-05 6 views
5

파일에서 최대한 많은 24 비트 청크를 읽고 싶습니다. bitstrings을 사용하여 이것을 수행하는 방법은 무엇입니까? ConstBitStream 현재 청크의 수는 얼마입니까? 현재비트 문자열로 전체 파일을 읽는 방법

나는이 작업을 수행 :

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

(여기에 내가 이벤트의 수를 미리 계산해야한다)을 ReadError의 exeption이 잡기

try: 
    while True: 
     packet = eventList.read(24) 
except ReadError: 
    pass 

답변

4

ReadError은 완벽하게 좋은 대답이지만 다른 방법은 cut 메서드를 사용하는 것입니다.이 메서드는 지정된 길이의 비트 문자열에 대한 생성기를 반환하고, 그래서 단지

for packet in eventList.cut(24): 

가 작동해야합니다.

+0

'ReadError'는'bitstring' 예외입니다. 'bitstring'에서 가져 오거나'bitstring.ReadError'로 사용해야합니다. – TheMeaningfulEngineer

3

생성 될 때까지 읽을 수

+0

매우 편리한 솔루션입니다. 감사합니다! – HWende