subprocess.Popen is a class, and as such it returns an object which can
do a lot of stuff besides just reading the output.
What you want to do here is using it's communicate() method as such:
output, errors = ping.communicate()
Also, there is a quicker way, I think from version 2.7 forward: use the
shortcut
output = subprocess.check_output("your command here")
Always check latest documentation for your python version too
http://docs.python.org/library/subprocess.html
Nick
On 07/08/2010 04:04 PM, Paul VanGundy wrote:
Hi All,
I'm trying to get data from subprocess.Popen. To be specific, I am
trying to read a ping echo and take the output and assign it to a
variable like below:
ping = subprocess.Popen("ping -c 5 %s" % (server),
stdout=subprocess.PIPE, shell=True)
However, when I run the command the output that gets assigned to my ping
variable is something along the lines of '<subprocess.Popen object at
0x9524bec>' and am not returned to>>> prompt. I know that is the proper
output but I need to be able to capture the ping replies and assign
those to a variable. I tried adding a \r and \n at the end of my cmd.
Any help would be greatly appreciated. I'm open to improvements,
different ways of doing it and corrections. :) If more info is needed
let me know. Thanks.
/paul
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor