On 12 Jul 2006 18:09:42 -0700 in comp.lang.python, "Wesley Henwood" <[EMAIL PROTECTED]> wrote:
>To capture output from python scripts run from a C++ app I've added the >following code at the beggening of the C++ app: > >PyRun_SimpleString("import grabber"); >PyRun_SimpleString("import sys"); >PyRun_SimpleString("class a:\n\tdef >write(self,s):\n\t\tograbber.grab(s)\n"); >PyRun_SimpleString("import sys\nsys.stderr=a()\nsys.stdout=a()"); > >Its hard to read that way, here's what it expands to: >import grabber >import sys >class a: > def write(self, s) > grabber.grab(s) Actually, that last line will more like > ograbber.grab(s) At least, if what you posted above is accurate... It's not the question you asked, but if you want to make that easier to read, you can do something like PyRun_SimpleString("import grabber"); PyRun_SimpleString("import sys"); PyRun_SimpleString("class a:\n" " def write(self,s):\n" " grabber.grab(s)\n"); PyRun_SimpleString("import sys\n" "sys.stderr=a()\n" "sys.stdout=a()\n"); C++, like Python, will concatenate strings seperated only by whitespace. Regards, -=Dave -- Change is inevitable, progress is not. -- http://mail.python.org/mailman/listinfo/python-list