Numpy fromfile чтение после EOF - PullRequest
0 голосов
/ 07 мая 2018

Все,

имеют некоторые значения с плавающей запятой, хранящиеся в двоичном файле, и я читаю их обратно.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?

...