Python Interactive Shell - outputting to stdout?
Avi Berkovich
cold_fusion at fastmail.fm
Mon Dec 27 20:45:08 EST 2004
Avi Berkovich wrote:
> Hey,
>
> I can't make it work, I don't get any data from either stdout nor stderr.
> If I send lines and then close the stdin pipe, I may get an exception
> message from several lines up.
>
> I tried manually reading from the stdout pipe, but it just blocks and
> hangs no matter what I send over via the stdin pipe.
>
> This behavior isn't presented by the command line interpreter by any
> chance.
>
> Any suggestions?
Well,
I didn't manage to get the pipes working, and finally decided to embed
the interpreter into the program, though another option is to embed it
into a simple console program consisting of the interpreter
initialization and input reading, and just pipe into that.
Code for simple interpreter embedded program:
#include <stdio.h>
#include <python.h>
int main()
{
char execString[128];
Py_Initialize();
while (1)
{
gets(execString);
if (!strcmp(execString, "QUIT PROGRAM"))
break;
PyRun_SimpleString(execString);
}
Py_Finalize();
}
This program works well with pipes, though in order to issue the command
I have to write "\n\r\n" (not "\r\n" or "\n" ?!) to the pipe.
Avi.
More information about the Python-list
mailing list