python - 读取用python编写的c二进制文件

标签 python c arrays numpy

我使用

将 numpy 二维 float 组编写为二进制文件

narr.tofile(open(文件名,"wb"),sep="",format='f')

并尝试使用 c 在 c 中检索相同的内容

FILE* fin = fopen(filename,"rb") 
float* data = malloc(rows*2*sizeof(float));
fread(data, sizeof(float), rows*2, fin);

打印时此数据数组显示的值与原始数组不同。我错过了什么吗? 谢谢

最佳答案

这可能取决于您使用的系统,ndarray.tofile()以little-endian输出,这意味着首先存储最低有效字节,请尝试使用 numpy.byteswap() ,然后转换为文件。也尝试在没有格式说明符的情况下执行此操作并查看结果。文档指出说明符的默认值为 format="%s",尝试在格式说明符之前放置百分比符号,例如 %f

关于python - 读取用python编写的c二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39707159/

相关文章:

java - 堆大小限制

java - Java获取数组元素差异

python - 开始使用 pystache

python - 将数据框中两列的日期/时间合并为一列

c - 如何读取、加密和覆盖文本文件

c - 多次 fork 后写入管道不起作用

arrays - Swift:捕获变量的当前值

python - 为 OpenCV imshow 连接 Numpy 数组

python - 什么时候(以及为什么)引入 Python `__new__()`?

python - 如何使用列表理解添加 str + int 列表?