如何从pythoncapi获取历史记录

2024-10-02 12:25:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从Python获取历史计数(和内容)。你知道吗

从命令行可以使用readline模块(通过pip install pyreadline安装):

import readline
x=readline.get_current_history_length()
x

结果应该是2。 但是,使用Python C API的同一代码总是返回零,而不管实际的历史记录是什么:

#include <Python.h>

long GetHistoryCount() {
    Py_Initialize();
    PyRun_SimpleString("import readline");
    PyRun_SimpleString("x=readline.get_current_history_length()");

    PyObject *mainModule = PyImport_AddModule("__main__");
    PyObject *var = PyObject_GetAttrString(mainModule, "x");

    Py_Finalize();
    return PyLong_AsLong(var);
}

int main(int argc, char **argv) {
    long count = GetHistoryCount();
    printf("Count: %ld", count);
    return EXIT_SUCCESS;
}

打印:Count: 0

如何从pythoncapi获取历史记录?你知道吗

this discussion中找到readline模块


Tags: 模块pyimport历史记录readlinegetcurrentpyrun

热门问题