所有
将一些浮点值存储在二进制文件中并读回来。 Windows 10,x64,Anaconda 5.1,Python 3.6,Numpy 0.14.1。文件以'rb'标志打开。使用'np.fromfile'进行读取工作正常,除非我尝试读取文件以外的内容。我有一段代码检查文件是否在EOF
try:
_ = struct.unpack('f', f.read(4))[0]
# if successfull, means we did something wrong, should be an exception thrown
raise RuntimeError("There is something wrong with KDD file, it's TOO LONG!")
except struct.error as ex:
# got and exception, file is ok, return good values
pass
基本上检查我是否从文件中读取了所有内容。效果很好。今天我玩了它,并认为我可以删除对struct
的依赖,只需将行_ = struct.unpack('f', f.read(4))[0]
替换为_ = np.fromfile(f, dtype=np.float32, count=1, sep="")
,应该得到不同的异常,并以同样的方式处理它,...
但是!没有异常被引发,没有,我得到了自己的RuntimeError。这是一个错误吗?一般来说,我想知道我是否读过EOF以外的内容?