Salut à tous,

Je programme depuis longtemps en C et je débute actuellement en python. Je suis un peu surpris de sécher aussi rapidement... désolé si la question semble basique, mais je n'ai pas trouvé de solution claire à mon problème.

J'ai un fichier binaire dans lequel il y a un "tableau" 2D de nombres (float) d'une taille (nx+1) et (ny+1) dans l'une et l'autre dimension, respectivement. le fichier est écrit par un programme C.

Mes problèmes :

- je n'ai pas compris comment créer un tableau 2D "vide" en python. Je pense savoir créer un tableau 2D genre [[2,3,5],[4,2,1]] mais pour un tableau 1024*1024 élements, je ne vois pas comment le créer.


- J'ai compris que fichier.read() allait me retourner une chaine de caractère à partir de mon fichier binaire. Je suis pas sûr de savoir comment transférer mes données dans un tableau 2D ?

Est-ce que tout ça est possible "simplement" en python de base, où est-ce qu'il faut que j'aille vers quelque chose de pus haut niveau genre "numpy" ?


voici un code C produisant un fichier binaire que j'aimerai relire en python :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
#include <stdio.h>
#include <stdlib.h>
 
 
 
int main(void)
{
 
float *array;
int nx, ny;
int i, j, ij;
FILE *fp;
 
nx = 1024;
ny = 512;
fp = fopen("array.dat","w");
 
array = calloc((nx+1)*(ny+1), sizeof(*array));
 
for (i=0; i<nx+1; i++)
    {
    for (j=0; j<ny+1; j++)
        {
        ij = i + j*(nx+1);
        array[ij] = ij;
        }
    }
 
 
fwrite (array,sizeof(*array),(nx+1)*(ny+1),fp);
 
 
fclose(fp);
free(array);
return 0;
}



Merci beaucoup si qqn peut m'aiguiller vers des exemples/solutions