我找到了蟒蛇struct.unpack()
读取其他程序生成的二进制数据非常方便。
问题:如何阅读16 字节长双精度数出二进制文件?
以下 C 代码将 1.01 写入二进制文件三次,分别使用 4 字节浮点型、8 字节双精度型和 16 字节长双精度型。
FILE* file = fopen("test_bin.bin","wb");
float f = 1.01;
double d = 1.01;
long double ld = 1.01;
fwrite(&f, sizeof(f),1,file);
fwrite(&d, sizeof(d),1,file);
fwrite(&ld, sizeof(ld),1,file);
fclose(file);
在Python中,我可以毫无问题地读取浮点数和双精度数。
file=open('test_bin.bin','rb')
struct.unpack('<fd',file.read(12)) # (1.0099999904632568, 1.01) as expected.
我在模块中没有找到 16 字节长双精度的描述struct
格式化字符部分 https://docs.python.org/3/library/struct.html#format-characters.