我有一个二进制文件,我试图根据协议解析。在二进制数据中,有一个由{C}生成的值'\nW\xe1A'
,如下所示:
struct. pack( '< f',28.1675).
当我尝试使用'rb'
打开文件并使用unpack
来获取浮动时,读取(长度)似乎只得到没有'\nW'
的部分,只有{{1 ,就像Python正在解释换行符'\xe1A'
,但用'\n'
打开应该避免这种情况吗?
有没有解决方案?
答案 0 :(得分: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,这非常接近。如果你同时使用&#34; rb&#34;和&#34; wb&#34;,在路上应该没有换行麻烦。