我有一个ieee 32位浮点数的大型二进制文件。
在python中我使用:
f = file.read(4)
while f !='':
if len(f) == 4:
data =struct.unpack('>f', f)
print data
f = file.read(4)
一次读取4个字节
但是,偶尔f将是大小为1,而struct.unpack会抱怨它的输入必须是大小为4的字符串。
文件大小可以被4整除,并且会在文件中多次发生。
导致这种情况的原因是什么?
答案 0 :(得分:4)
您是否以二进制模式打开文件?
无论如何,更好的阅读文件的方法是使用array.fromfile()
或NumPy。
答案 1 :(得分:3)
首先,我建议不要使用单词file
作为变量,因为它是__builtin__
函数。
其次,二进制模式还是ascii模式?
答案 2 :(得分:3)