devo usare un programma scritto in C che leggere i dati da un file binario in questo modoScrittura dei file binari in python per essere letto da 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;
}
}
Il codice di cui sopra non è tutto il codice del programma Sto usando ma solo la parte rilevante per la mia domanda. Ho bisogno di leggere le posizioni delle particelle nCnt
, cioè le coordinate per ogni particella. Ho queste posizioni in un array pitone, che assomiglia a questo
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]]])
Come dovrei scrivere questo array in un file binario in modo che il codice C avrebbe letto bene?
Presumibilmente questo è un array di 'numpy'? –
Avete controllato: http://stackoverflow.com/questions/807863/how-to-output-list-of-floats-to-a-binary-file-in-python (la soluzione proposta utilizza http: // docs .python.org/2/library/array.html)? – furins
Non vuoi stringificare i tuoi dati per universalità? Ad esempio è possibile memorizzarlo in JSON, in tal caso non dipenderete da endianness o da bitness. –