Я постоянно получаю новые данные в виде пустых матриц, которые мне нужно добавить в существующий файл. Структура и тип данных этого файла фиксированы, поэтому мне нужен python, чтобы выполнить преобразование для меня.
Для одной матрицы это работает:
myArr = np.reshape(np.arange(15), (3,5))
myArr.tofile('bin_file.dat')
Но если я захочу добавить существующий файл все большим количеством массивов, тогда numpy.tofile
перезапишет любой контент, найденный в файле, вместо добавления.
Я обнаружил, что могу продолжать делать это:
bfile = open('bin_file.dat', 'ab')
np.save(bfile, myArr)
bfile.close()
, который успешно добавляется в двоичный файл. Но numpy.save
, с другой стороны, не хранит необработанные двоичные данные, но также сохраняет заголовок (я полагаю), что делает файл нечитаемым для стороннего программного обеспечения (мне нужен необработанный двоичный файл с float32
).
Чтение в существующем содержимом файла с помощью numpy.fromfile
, добавление моих данных и повторное сохранение - не вариант, так как файл становится очень большим, и все операции ввода-вывода будут выполняться вечно.
Есть ли что-нибудь похожее на append
режим для numpy.tofile
? Есть ли другие возможности, которые я в настоящее время упускаю?