【データ受け渡し】C言語で出力したバイナリーデータをPythonで読み込む

いつも忘れるのでメモ。
PythonからC言語ver. はこちら

単純な一次元配列であれば、C言語側で

#include <stdio.h>
#include <stdlib.h>

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);

  

}


のように出力し、Python側で
import numpy as np

f=open("test.dat",mode='rb')

data=np.fromfile(f,dtype='float',count=-1,sep="")

print(data)

のように読み込めば良い(※pythonのfloatはc言語の倍精度に相当するのでfloatで読んでいる)。

コメント

このブログの人気の投稿

旧バージョンのiMovieを入れる方法

TWRP公式サポートされてないAndroid端末でシステムインストールした話

[UTAU] Garagebandで作ったボーカルメロディーをUTAUに読ませる