muszę używać program napisany w języku C, które odczytać dane z pliku binarnego w ten sposóbZapisywanie plików binarnych w python być odczytywane przez C
nCnt = 0;
for (i=0;i<h.nsph;++i) {
fread(&gp,sizeof(struct gas_particle),1,fp);
if (bGas) {
kd->p[nCnt].iOrder = nCnt;
for (j=0;j<3;++j) kd->p[nCnt].r[j] = gp.pos[j];
++nCnt;
}
}
Powyższy kod nie jest cały kod programu Używam, ale tylko część istotną dla mojego pytania. Muszę odczytać pozycje cząstek nCnt
, tj. Współrzędnych każdej cząstki. mam te pozycje w tablicy Pythona, który wygląda tak
pos=array([[[ 0.4786236 , 0.49046784, 0.48877147],
[ 0.47862025, 0.49042325, 0.48877267],
[ 0.47862737, 0.49039413, 0.4887735 ],
...,
[ 0.4785084 , 0.49032556, 0.48860968],
[ 0.47849332, 0.49041115, 0.48877266],
[ 0.47849161, 0.49041022, 0.48877176]]])
Jak powinienem napisać tę tablicę w pliku binarnego tak, że kod C będzie ją przeczytać w porządku?
Można przypuszczać, że jest 'numpy' tablica? –
Czy sprawdziłeś to: http://stackoverflow.com/questions/807863/how-to-output-list-of-floats-to-a-binary-file-in-python (proponowane rozwiązanie używa http: // docs .python.org/2/library/array.html)? – furins
Nie chcesz łączyć danych dla uniwersalności? Na przykład możesz przechowywać go w JSON, w takim przypadku nie będziesz zależał od endianness lub bitness. –