簡體   English   中英

使用Python“cPickle.load”加載C ++編寫的二進制文件時的EOFError

[英]EOFError when using Python “cPickle.load” to load a C++-written binary file

我使用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()

請幫助解決這個問題。 謝謝!

解決了numpy ...看起來像pickle.load不能用來加載c ++二進制文件。 所以我使用numpy.fromfile

data =  np.fromfile("res.bin", dtype='float32')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM