run command and get output python subprocess code example
Example 1: python run command and read output
#!/usr/bin/python
import subprocess, sys
## command to run - tcp only ##
cmd = "/usr/sbin/netstat -p tcp -f inet"
## run it ##
p = subprocess.Popen(cmd, shell=True, stderr=subprocess.PIPE)
## But do not wait till netstat finish, start displaying output immediately ##
while True:
out = p.stderr.read(1)
if out == '' and p.poll() != None:
break
if out != '':
sys.stdout.write(out)
sys.stdout.flush()
Example 2: python get output
>out = subprocess.Popen(['wc', '-l', 'my_text_file.txt'],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)