我想从一个二进制文件中读/写C浮点值,如果它是用C创建的?
文件创建如下:
#include <stdio.h>
int main() {
const int NUMBEROFTESTELEMENTS = 10;
/* Create the file */
float x = 1.1;
FILE *fh = fopen ("file.bin", "wb");
if (fh != NULL) {
for (int i = 0; i < NUMBEROFTESTELEMENTS; ++i)
{
x = 1.1*i;
fwrite (&x,1, sizeof (x), fh);
printf("%f\n", x);
}
fclose (fh);
}
return 0;
}
我是这样的:
file=open("array.bin","rb")
number=list(file.read(3))
print (number)
file.close()
但这并不能保证读取的值是一个C浮点数。
2条答案
按热度按时间bpsygsoo1#
这应该可以完成任务。
numbers
是10个值的tuple
。rta7y2nd2#
如果您关心性能,我建议使用numpy.fromfile来阅读浮点值:
这种方法在性能方面比
struct.unpack
快得多!