Running a command line program and reading the result as it runs

Antoon Pardon antoon.pardon at rece.vub.ac.be
Fri Aug 23 06:34:58 EDT 2013


Op 23-08-13 11:53, Antoon Pardon schreef:
> Op 22-08-13 07:51, Ian Simcock schreef:
>> Greetings all.
>>
>> I'm using Python 2.7 under Windows and am trying to run a command line
>> program and process the programs output as it is running. A number of
>> web searches have indicated that the following code would work.
>>
>> import subprocess
>>
>> p = subprocess.Popen("D:\Python\Python27\Scripts\pip.exe list -o",
>>                      stdout=subprocess.PIPE,
>>                      stderr=subprocess.STDOUT,
>>                      bufsize=1,
>>                      universal_newlines=True,
>>                      shell=False)
>> for line in p.stdout:
>>     print line
>>
>> When I use this code I can see that the Popen works, any code between
>> the Popen and the for will run straight away, but as soon as it gets to
>> the for and tries to read p.stdout the code blocks until the command
>> line program completes, then all of the lines are returned.
>>
>> Does anyone know how to get the results of the program without it blocking?
> 
> Maybe the following can work?

Never mind. I had overlooked that using pty requires linux and you are
using windows.

-- 
Antoon Pardon




More information about the Python-list mailing list