저는 python에 익숙하지 않지만이 프로젝트를 완료해야합니다. 내가 장치에서 일부 원시 데이터를 얻을 telnetlib를 사용하고,이 데이터가 모습입니다python은 원시 이진 데이터를 float 배열로 변환합니다.
\xc2\xb2\xdd\x0f\xc2\xb2x/\xc2\xb2\x08\xb2M\xcf\xc2\xb2\xc5S\xc2\xb2\xd6[\xc2\xb2qw\xc2\xb1\xafK\xc2\xb1n+\xc2\xb2?\x83\xc2\xb1\xe3\xb7\xc2\xb0\xe8\x87\xc2\xb0\xf1\x8f\xc2\xb1x\xbf\xc2\xb1\xcbO\xc2\xb1\x98\x93\xc2\xb1\xd4\xc3\xc2\xb1\xf7\x9f\xc2\xb1\xb3\x97\xc2\xb1\xe7;\xc2\xb2\x97\xcb\xc2\xb2\xd3\xf3\xc2\xb2f\x8b\xc2\xb1\xc6\xdb\xc2\xb1\xadC\xc2\xb1t\xcf\xc2\xb1\x9c\xdf\xc2\xb1\xb7\x1b\xc2\xb1\xa3\xc2\xb1\t_\xc2\xb1v\xc3\xc2\xb1\xeb
문서 (이, 진짜 약 10 배 더 큰 내가 얻을 출력의 일부) 장치의 말은
raw data: binary. An array of float values in big-endian format (not as a string).
질문은 어떻게이 데이터를 부동 소수점 배열로 변환 할 수 있습니까?
코드 : 내가 파이썬 쉘에서 같은 행동을 할 경우 내가 터미널에서이 스크립트를 실행하면import telnetlib
tn = telnetlib.Telnet(hostIP)
tn.read_until("connected")
tn.write("getData\r\n")
data = tn.read_until("\r\n")
print data
내가
²\f²▒▒²▒V²▒²▒ ³▒▒³u▒³:v³▒>³;>²W▒²O^²Xf²▒▒±▒▒²P▒²▒j²▒²▒³Pv³▒▒²▒n²:Z²▒±▒F±▒±7▒±@▒±t^±▒▒±▒▒²5:±▒"±▒~±ю±±*±▒°▒▒°{n°a▒°▒:°Q▒°[°cj°0▒¯▒▒¯▒▒r¯ޒ°▒°▒¯▒▒¯a▒¯▒°E▒°▒r°q*¯▒¯▒
일부 바이너리 "쓰레기"를 얻을를 얻을 \ XC2 \ XB2 \ xdd \ x0f \ xc2 ... 값
얼마나 많은 수레를 얻는 지 알고 있습니까? 'struct.unpack'은 바이너리 데이터를 값의 튜플로 바꿀 수 있어야합니다. 아마'numpy'로 그것을 할 수있는 방법이있을 것입니다. – Blckknght
여기에 코드를 붙여 넣을 수 있습니까? 그리고 아마도 numpy 또는 pandas를 사용해야합니다. –
@Blckknght 내가 얻는 수레의 수를 모른다. struct.unpack ('d', data)을 시도하면 struct.error가됩니다. unpack에는 길이가 8 인 문자열 인수가 필요합니다. – Stuka