numpy的fromfile计数参数是如何工作的?
我正在尝试用numpy的fromfile函数读取一个二进制文件:
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['Width']*wcf['Height'](在我的例子中是512*512)。所以我把这个数字传进去,但这个函数只读取了283个值。实际上,它最多只能读取283个值,也就是说,如果我传入的数量大于283,它只会读取283个值。如果我传入的数量小于283,它就会读取我指定的数量。
当我传入count=-1(也就是读取文件直到结束的所有值)时,它可以正常工作,也就是说文件里还有更多的值。然而,由于这个二进制格式可以包含多张图片,我需要指定我想读取的值的数量。
有没有人知道我哪里做错了?
1 个回答
1
这是一个二进制文件,所以应该以二进制模式打开:
f = open("01.wcf", 'rb')