2016-03-03 3 views
1

Я знаю, маринады могут быть легко загружены в Python с использованиемЗагрузка питон маринованные объект в C

import pickle 
p = pickle.load(open("file.pkl")) 

Я задавался вопросом, как загрузить тот же файл рассола в Pyx код/​​C в Python? Я не мог найти метод, чтобы напрямую загрузить его.

Возможно, решение было бы загрузить в python и передать ссылку на объект в C?

ответ

0

Простым ответом было бы просто скомпилировать ваш код с Cython. Все будет сделано автоматически.

В контексте API Python C, вы можете легко скопировать этот код что-то вроде:

PyObject *file = NULL, *p = NULL; 
PyObject *pickle = PyImport_ImportModule("pickle"); // import module 
if (!pickle) goto error; 
file = PyFile_FromString("file.pkl", "r"); // open("file.pkl") 
if (!pickle) goto error; 
p = PyObject_CallMethod(pickle, "load", "O", file); // pickle.load(file) 
error: 
Py_XDECREF(pickle); 
Py_XDECREF(file); 

Это делается для Python 2, в то время как для Python 3 open("file.pkl") должна быть реализована с помощью io модуля ,

+0

О да, это выглядит действительно круто. Пользуясь этим. – Alex

 Смежные вопросы

  • Нет связанных вопросов^_^