Я создаю некоторые данные на C++, которые я хочу получить в программе Python. Я выяснил, как сериализовать/deserialize в/из двоичного файла с boost в C++, но не как получить доступ к данным в Python (без ручного анализа двоичного файла).boost :: serialization in C++, десериализация в Python
Вот мой C++ код для сериализации:
/* Save some data to binary file */
template <typename T>
int serializeToBinaryFile(const char* filename, const T& someValue,
const vector<T>& someVector)
{
ofstream file(filename, ios::out | ios::binary | ios::trunc);
if (file.is_open())
{
boost::archive::text_oarchive oa(file);
int sizeOfDataType = sizeof(T);
oa & sizeOfDataType;
oa & someValue;
oa & someVector;
file.close();
return 0;
} else {
return 1;
}
}
Вот мой C++ код для десериализации:
/* Load some data from binary file */
template <typename T>
int deSerializeFromBinaryFile(const char* filename, int& sizeOfDataType,
T& someValue, vector<T>& someVector)
{
ifstream file(filename, ios::in | ios::binary);
if (file.is_open())
{
boost::archive::text_iarchive ia(file);
ia & sizeOfDataType;
ia & someValue;
ia & someVector;
file.close();
return 0;
} else {
return 1;
}
}
Как я могу загрузить значение и вектор на объекты в программе Python?
Вы можете обернуть свой код десериализации с помощью boost :: python и вызвать его. – m0nhawk
IMHO, лучший способ использовать [Google protobuf] (https://developers.google.com/protocol-buffers/docs/overview) – megabyte1024