Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!aioe.org!news.swapon.de!feeder.erje.net!newsfeed20.multikabel.net!multikabel.net!newsfeed10.multikabel.net!xlned.com!feeder1.xlned.com!zen.net.uk!hamilton.zen.co.uk!reader02.news.zen.co.uk.POSTED!not-for-mail From: Nobody Subject: Re: How to catch a line with Popen Date: Sat, 28 May 2011 23:15:06 +0100 User-Agent: Pan/0.14.2 (This is not a psychotic episode. It's a cleansing moment of clarity.) Message-Id: Newsgroups: comp.lang.python References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Lines: 21 Organization: Zen Internet NNTP-Posting-Host: cd5e06bb.news.zen.co.uk X-Trace: DXC=iO:7 I'm looking into subprocess.Popen docs. I've launch the program with its > arguments and that's smooth. I'm expecting to read the output by > *comunicate()* at every line that prgram may blow during the process, but > the output is given only when the child process is ended. .communicate() reads until EOF, .wait()s for the process to terminate, then returns the output as a pair of strings. If you want to read data while the process is running, use the process' .stdout and/or .stderr members, e.g.: p = subprocess.Popen(...) for line in p.stdout: ... p.wait() Don't forget to .wait() on the process when you're done, regardless of whether you actually need the exit code.