Python2和Python3的兼容性

时间:2016-01-27 13:05:52

标签: python python-2.7 python-3.x python-c-api

我正在读取文件名并运行PyRun_SimpleFile功能。 不建议使用以下逻辑,因为如果编译器不匹配,则代码可能会在窗口中崩溃。

不推荐: -

FILE *fp = fopen(filename, "r");
if (!fp)
    return;
if (PyRun_SimpleFile(fp, filename) != 0)
    return;        

所以在逻辑之上,我已经在Python 2中实现了(如下所示),它工作得很好。 如何在python 3中实现(#else else在下面的代码中),因为Python 3不支持PyFile_FromString和PyFile_AsFile。

#ifdef PYTHON2
    PyObject* PyFileObject = PyFile_FromString(filename, (char *)"r");
    if (PyRun_SimpleFile(PyFile_AsFile(PyFileObject), filename) != 0)
        return;
#else
    //How to implement in Python3 above logic.. As PyFile_FromString and   
    //PyFile_AsFile is not supported in Python 3.
#endif

有人可以建议如何在Python 3中实现吗?

0 个答案:

没有答案