Могу ли я прочитать файл h5 на одной машине как bytearray, передать этот byararray на другую машину и затем загрузить его из bytearray на другую машину? - PullRequest
0 голосов
/ 29 октября 2018

У меня есть следующее требование: у меня есть файл h5 на одной (исходной) машине, который я хочу использовать на другой (целевой) машине. В настоящее время я чувствую, что должен прочитать этот файл h5 как bytearray на исходной машине, передать поток bytearray на целевую машину и затем загрузить файл h5 из bytearray на целевой машине.

Q1. Этот подход в порядке? Или есть какой-то другой подход, возможно, лучше?

В этом ответе я обнаружил, что мы можем загрузить файл h5 из bytearray. Но как я могу получить такой действительный bytearray из данного файла h5 в файловой системе. Я пытался получить bytearray с обычным open("temp.h5"), но он не работал.

Также эта старая цепкая нить, кажется, обсуждает то же самое. Кто-нибудь делал это раньше? Q2. Может кто-нибудь сказать, как мне это сделать? Или даже если это выполнимо?

1 Ответ

0 голосов
/ 29 октября 2018

Этот подход в порядке? Или есть какой-то другой подход, возможно, лучше?

Ваш подход звучит для меня разумно.

Но как я могу получить такой действительный байтовый массив из данного файла h5 в файловой системе. Я пытался получить bytearray с обычным открытием ("temp.h5"), но он не работал.

Вы должны прочитать файл как двоичный файл, используя режим 'b':

with open('some_file.txt', 'rb') as f:
    print(f.read())

>>> b'hello world'

Может кто-нибудь сказать, как я могу это сделать? Или даже если это выполнимо?

Это полностью выполнимо. Просто прочитайте ваш файл HDF5 в режиме 'rb', отправьте данные через сокет и прочитайте файл на другой стороне, используя метод из моего предыдущего ответа .

...