【データ受け渡し】C言語で出力したバイナリーデータをPythonで読み込む
いつも忘れるのでメモ。
PythonからC言語ver. はこちら。
単純な一次元配列であれば、C言語側で
#include <stdio.h> #include <stdlib.h>のように出力し、Python側でint main(void)
{
FILE* fp;
fp = fopen("test.dat", "wb");
if (fp == NULL) {
printf("Error: Cannot open file.\n");
exit(1);
}
double a[]={-1.5, 10.0};
int N=2;
fwrite(a, sizeof(double), N, fp);
fclose(fp);
}
import numpy as npのように読み込めば良い(※pythonのfloatはc言語の倍精度に相当するのでfloatで読んでいる)。f=open("test.dat",mode='rb')
data=np.fromfile(f,dtype='float',count=-1,sep="")
print(data)
コメント
コメントを投稿