3
파이썬 C++ API를 사용하여 C++ 프로그램에서 파이썬 명령을 실행하고 있습니다. 나는, 문자열에 대한 모든 파이썬 출력, 나는 다음과 같은 리디렉션에 의해 관리했습니다 잡으려고 비단뱀의 표준 출력과 표준 에러 출력을 잡으려면 :어떻게 파이썬 인터프리터 출력을 리디렉션하고 C++ 프로그램의 문자열에 잡으려고합니까?
#python script , redirect_python_stdout_stderr.py
class CatchOutput:
def __init__(self):
self.value = ''
def write(self, txt):
self.value += txt
catchOutput = CatchOutput()
sys.stdout = catchOutput
sys.stderr = catchOutput
#C++ code
PyObject *pModule = PyImport_AddModule("__main__");
PyRun_SimpleString("execfile('redirect_python_stdout_stderr.py')");
PyObject *catcher = PyObject_GetAttrString(pModule,"catchOutput");
PyObject *output = PyObject_GetAttrString(catcher,"value");
char* pythonOutput = PyString_AsString(output);
을 그러나 나는 또한 비단뱀 인터프리터를 잡기 위해 무엇을 해야할지하지 않습니다 출력 ....
http://docs.python.org/extending/embedding.html을 읽어 보셨습니까? – nmichaels