Как получить размер файла двоичного файла, не открывая его, так как он постоянно изменяется - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть двоичный файл, который постоянно изменяется и расширяется сенсорным блоком, данные в файле хранятся в формате np.float32.Мне нужно прочитать, сколько таких «блоков» данных было написано, прочитав общую длину файла.Какой самый оптимальный способ сделать это.В настоящее время у меня есть следующий кусок кода, который изначально отлично работает, но замедляется (как и ожидалось, когда размер файла увеличивается).Это потому, что я открываю файл каждый раз.Есть ли способ сделать это, используя os.path.getsize('file_path')?

with open(data_file, 'rb') as fid:
    return(len(np.fromfile(fid, np.float32)))

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

os.path.getsize дает вам размер в байтах.Размер np.float32 составляет 4 байта, так как 32 относится к числу битов, но вы также можете получить размер в байтах на

>>> np.dtype(np.float32).itemsize
4

Разделив размер файла на размер элемента, вы получитеколичество предметов.

0 голосов
/ 30 ноября 2018

Я думаю, что вы можете сделать следующее:

import os

print(os.path.getsize("path/of/your/file"))

Это напечатает размер файла в байтах.

Надеюсь, это поможет

...