在Python中从二进制文件中读取整数

4

我有一段以下的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");
}

这将以二进制形式在文件“file”中写入整数“a”。我该如何在Python中读取这个数字?

4
小提示:如果你要在不同的计算机之间传输这个二进制文件,一定要考虑字节序和整数大小的问题。 - csl
1个回答

3
尝试以下步骤。
from struct import *
f = open('file', 'rb')
print unpack('<i', f.read(4))[0]
f.close()

请注意,在使用'<'之前,要确定您的机器是小端序还是大端序。

1
你应该将'>'或'<'替换为'@'以使用本地字节顺序。 来源:http://docs.python.org/library/struct.html#byte-order-size-and-alignment - Léo Germond
3
假设读取文件的机器(结构)与写入文件的机器相同。 - johnsyweb
@john,是的,你说得完全正确,我只是在“补充”你的答案。 - Léo Germond

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接