Чтение целого числа из двоичного файла в Python

У меня есть следующий фрагмент кода C:

#include <stdio.h>
void main(){
  int a = 1308901095;
  FILE *fp;
  fp = fopen("file", "wb");
  fwrite(&a, sizeof(int), 1, fp);
  fclose(fp);
  printf("Done\n");
}

Это запишет целое число «a» в файл «file» в двоичной форме.

Как я могу прочитать этот номер в Python?


person ov1d1u    schedule 24.06.2011    source источник
comment
Небольшой совет: если вы передаете этот двоичный файл между компьютерами, обязательно учитывайте порядок следования байтов и размер вашего int.   -  person csl    schedule 24.06.2011


Ответы (1)


Попробуйте следовать.

from struct import *
f = open('file', 'rb')
print unpack('<i', f.read(4))[0]
f.close()

обратите внимание, что использование '‹' в отношении вашей машины является прямым порядком байтов или нет.

person mattn    schedule 24.06.2011