我使用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()
请帮助解决此问题。谢谢!
答案 0 :(得分:0)
由numpy解决...
pickle.load
似乎无法用于加载c ++二进制文件。所以我用numpy.fromfile
data = np.fromfile("res.bin", dtype='float32')