In article <mailman.2.1589442315.11657.python-l...@python.org>, __pete...@web.de says... > > Dick Holmes wrote: > > > https://occovid19.ochealthinfo.com/coronavirus-in-oc > > > I'm trying to > > communicate using a continuing dialog between two > > processes on the same system. > > I think pexpect > > https://pexpect.readthedocs.io/en/stable/index.html > > does this naturally, but I don't know if Windows support is sufficient for > your needs. > > > I've looked at various mechanisms and the > > class that seems to fit my needs is Popen in the subprocess module, but > > I can't seem to get more than a single round-trip message through Popen. > > I first call Popen then poll using the identifier returned from the call > > and the poll seems to work. I then call the communicate function passing > > None as the value to send to the companion process stdin. I get the > > expected result, but I also get "Exception condition detected on fd 0 > > \\n" and "error detected on stdin\\n". Subsequent attempts to > > read/write/communicate with the subprocess fail because the file (stdxx > > PIPE) is closed. > > > > I can't tell from the documentation if the communicate function is a > > one-time operation. > > Yes, communicate() is one-off, > > > """Interact with process: Send data to stdin and close it. > Read data from stdout and stderr, until end-of-file is > reached. Wait for process to terminate. > ... > """ > > seems pretty clear. What would you improve?
Peter - thanks for the clarification. I'm using the 3.6.5 CHM documentation and it doesn't mention the phrase "and close it". > > > I have tried using read but the read call doesn't > > return (I'm using winpdb-reborn to monitor the operations). > > Try readline(). Deadlocks may happen ;) > > > I'm using Python 3.7, Windows 10, winpdb-reborn 2.0.0, rpdb2 1.5.0. If > > it makes any difference, I'm trying to communicate with GDB using the MI > > interpreter. > > -- https://mail.python.org/mailman/listinfo/python-list