我遇到了以下问题。我想用Python把它们写进二进制文件中。当我使用python函数时
with open("test.dat","rb") as dfile:
data = dfile.read()
它给了我
b'\x00\x00\x00\x00\x00\x00\xf8?\x00\x00\x00\x00\x00\x00\x04@\x00\x00\x00\x00\x00\x00\n@\x00\x00\x00\x00\x00\x00\x11@'
所以我试着用data.decode()
解码,结果却给了我解码错误。我想是因为我使用了错误的编码类型。但我试了ascii
和{
如何在不知道编码类型的情况下读取二进制文件?
既然我在用c编写二进制文件时没有给出编码类型,那么c对数据进行编码吗?如果是,那将是哪种编码类型?
仅供参考,我最初用来写二进制文件的代码是
^{pr2}$
您需要将C类型转换为Python类型。在标准库here中使用
struct.unpack
。在在本例中,格式字符串是
dddd
,意思是4个双精度。当在不同的编译器和机器之间移动C类型时,困难就来了。在给出一个元组:
^{pr2}$如果您愿意使用numpy,请使用^{} :
大的python数组可能比你在大的python生态系统中更容易操作。在
您可以使用python标准array模块:
输出:
^{pr2}$相关问题 更多 >
编程相关推荐