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