bitarray 0.8.0을 사용하여 비트를 이진 파일에 쓰는 프로그램을 작성했습니다. 이 이진 파일에 헤더를 추가하여 파일 내부 내용을 설명하고 싶습니다.파이썬에서 파일의 bitarray 's 파일을 사용하여 헤더가있는 이진 파일 읽기
제 문제는 비트 배열의 "fromfile"메소드가 반드시 처음부터 파일 읽기를 시작한다고 생각합니다. 나는 독서 프로그램이 헤더를 얻은 다음 이진 부분 (bitarray tofile) 만 들어있는 임시 파일을 다시 쓰도록 임시 해결책을 만들 수있다.하지만 아이디어가 너무 효율적이지는 않다.
올바르게 수행 할 수있는 방법이 있습니까?
같은 것을 볼 수 있었다 내 파일 일반 텍스트 헤더이며, 바이너리 데이터가 bitarray 정보입니다 다음
... {(0, 0) : '0'} {(0, 0) : '0'} {(0, 0) : '0'} ...
편집 :
bits = ""
b = bitarray()
with open(Filename, 'rb') as file:
#Get header
byte = file.read(1)
while byte != "":
# read header
byte = file.read(1)
b.fromfile(file)
print b.to01()
print "len(b.to01())", len(b.to01())
:
나는 응답을 읽은 후 다음을 시도
길이가 0이고 "to01()"의 인쇄가 비어 있습니다. 그러나 헤더의 인쇄가 잘됩니다.
> FROMFILE (F [N]) 읽기 N 파일 오브젝트 F 바이트 기계 값으로 해석 bitarray로 추가. n을 생략하면 EOF에 도달 할 때까지 읽은 바이트 수만큼 읽습니다. – mgilson
나는 당신에 동의합니다. 나는 문서의 인용문이 당신의 주장을 고쳐 줄 것이라고 생각했습니다. – mgilson
@mgilson : 충분합니다. 나는 적절한 발췌 부분을 포함하도록 편집 할 것이다. –