我知道pickles可以很容易地加载到python中使用
import pickle
p = pickle.load(open("file.pkl"))
我想知道如何在 python 中的 pyx/C 代码中加载相同的 pickle 文件?我没找到直接加载的方法。
也许解决方案是在 python 中加载并传递对 C 中对象的引用?
简单的答案是使用 Cython 编译代码。那里的一切都会自动完成。
在 Python C API 的上下文中,您可以使用以下内容轻松复制此代码:
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 https://docs.python.org/3/library/io.html#module-io module.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)