2014-06-16 3 views
0

프로토콜을 기반으로 구문 분석하려고하는 이진 파일이 있습니다.이진 모드에서 읽음 개행 문자를 해석합니다.

struct. pack('< f',28.1675). 

내가 'rb'으로 파일을 열고 다시 플로트를 얻을 수 unpack를 사용하려고, 읽기 (길이)이 보인다 : 이진 데이터에서 지금처럼 C 구조체에 의해 생성 된이 값 '\nW\xe1A'이있다 단지 '\nW'없이 부품을 얻는 것, 단지 '\xe1A'인데 파이썬이 개행 문자 '\n'을 해석하는 것과 비슷하지만 'rb'으로 열리는 것은 이것을 피하기로되어 있습니까?

이 문제가 해결 되었습니까?

+0

무엇이 당신의 질문입니까? – Brionius

+0

죄송합니다. 유선 텍스트가 SOF에서 벗어났습니다! 업데이트 됨! –

+0

' '\ nW'문자가 아직 읽혀지지 않았습니까? – grc

답변

1

표시 할 코드에 아무런 문제가 없어야합니다. 다음은 최소 예입니다.

import struct 

s = struct.pack("<f", 28.1675) 
open("/tmp/testi.dat", "wb").write(s) 

s1 = open("/tmp/testi.dat", "rb").read() 
print struct.unpack("<f", s1)[0] 

이렇게하면 28.1674995422가 매우 가깝습니다. "rb"와 "wb"를 모두 사용하는 경우에는 개행 방해가 없어야합니다.

관련 문제