ws-news at gmx.at
Thu Mar 8 10:54:33 CET 2001
If there is no data to read, readline it will block for such to become
I don't think that cout.flush() is of any use, btw.
Maybe I'm wrong, but I think data can only be flushed out by the sender of a
Further, what's if the program prints out something in between, or more than
Maybe you can do the reading in a seperate thread.
Alternatively you can try to find out if there _is_ sth you can read.
Leonardo B Lopes <leo at iems.nwu.edu> wrote in message
news:3AA6D886.4DD8D3A4 at iems.nwu.edu...
> I use a program that doesn't have readline compiled in. So I figured, it
> would be easy to add a python wrapper around it. So I wrote the wrapper,
> using 'cat' as a test command. With 'cat' it works fine. But when I try
> using another program, such as 'python', the program just hangs at
> readline(). Anybody know how to accomplish this? Here is the code:
> import sys,os
> import cmd
> class Amplcmd(cmd.Cmd):
> def __init__(self):
> self.cin,self.cout = os.popen2('/usr/local/bin/python')
> def default(self,line):
> print self.cout.readline(),
> def do_EOF(self,line):
> mycmd = Amplcmd()
> Leonardo B. Lopes leo at iems.nwu.edu
> Ph.D. Student (847)491-8470
> IEMS - Northwestern University http://www.iems.nwu.edu/~leo
More information about the Python-list