128 votes

Lire un fichier binaire avec python

Je trouve particulièrement difficile la lecture de fichier binaire avec Python. Peux-tu me donner un coup de main? J'ai besoin de lire ce fichier, qui en Fortran 90 est facilement lu par

 int*4 n_particles, n_groups
real*4 group_id(n_particles)
read (*) n_particles, n_groups
read (*) (group_id(j),j=1,n_particles)

En détail, le format de fichier est :

 Bytes 1-4 -- The integer 8.
Bytes 5-8 -- The number of particles, N.
Bytes 9-12 -- The number of groups.
Bytes 13-16 -- The integer 8.
Bytes 17-20 -- The integer 4*N.
Next many bytes -- The group ID numbers for all the particles.
Last 4 bytes -- The integer 4*N. 

Comment puis-je lire ceci avec Python ? J'ai tout essayé mais ça n'a jamais marché. Y a-t-il une chance que je puisse utiliser un programme f90 en python, lire ce fichier binaire, puis enregistrer les données que j'ai besoin d'utiliser ?

17voto

Chris Points 12438

Vous pouvez utiliser numpy.fromfile , qui peut lire des données à partir de fichiers texte et binaires. Vous devez d'abord construire un type de données, qui représente votre format de fichier, en utilisant numpy.dtype , puis lire ce type à partir du fichier en utilisant numpy.fromfile .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X