numpy的fromfile count参数如何工作?

时间:2014-04-08 13:52:48

标签: python numpy

我正在尝试使用numpy来自文件函数读取二进制文件:

   f = open("01.wcf", 'r')
   wcf_header = np.fromfile(f, dtype=WC_IMAGE_DATA_HEADER_2, count=1)

   f.seek(5592)
   wcf = np.fromfile(f, dtype=WC_IMAGE_DATA, count=1)

   f.seek(6660)
   size = wcf['Width'] * wcf['Height']
   print size
   raw = np.fromfile(f, dtype=np.uint16, count=size)
   print np.size(raw)

前两个电话工作正常。我现在知道,从6660开始,将有一个大小为wcf ['宽度'] * wcf ['高度'](在我的情况下为512 * 512)的图像。所以我传递了这个数字,但该函数只读取了283个值。实际上,它读取最大数值283,即对于任何计数值> 283它只读取283个值。对于任何计数值< 283它读取指定数量的值。

当我传递count = -1(即读取所有值直到文件末尾)时,它起作用,即文件包含更多值。但是,由于这种二进制格式允许多个图像,我需要指定我想要读取的值的数量。

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:1)

它是一个二进制文件,所以它应该以二进制模式打开:

f = open("01.wcf", 'rb')