繁体   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