EOFError при использовании Python "cPickle.load" для загрузки двоичного файла, написанного на C ++ - PullRequest
0 голосов
/ 03 мая 2019

Я написал бинарный файл, используя C ++ fwrite и попытался использовать cPickle.load для загрузки этого файла.Однако я получил ошибки

 data = pickle.load(f)
 EOFError

Мой код записи на C ++:

FILE* bp = fopen("res.bin", "wb");
for(int i = 0; i < 512 ; i++){
    float tmp = i;
    fwrite(&tmp, sizeof(float), 1, bp);
}
fclose (bp);

Мой код загрузки Python *

 import cPickle as pickle
 f =  open("res.bin", "rb")
 data = pickle.load(f)
 f.close()

Пожалуйста, помогите с этой проблемой.Thx!

1 Ответ

0 голосов
/ 03 мая 2019

Решено с помощью numpy ... Кажется, pickle.load нельзя использовать для загрузки бинарного файла c ++.Поэтому я использую numpy.fromfile

data =  np.fromfile("res.bin", dtype='float32')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...