EOF之后的文件阅读中的Numpy

时间:2018-05-07 18:00:39

标签: python python-3.x numpy numpy-ndarray

所有

将一些浮点值存储在二进制文件中并读回来。 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以外的内容?

0 个答案:

没有答案