我正在读取文件名并运行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中实现吗?