¿Cómo almacenar el valor de retorno de os.system que se imprimió en la salida estándar en python?

Estoy escribiendo una secuencia de comandos de Python que comprueba el número de conexiones activas para un puerto / IP particular. Para esto uso os.system (‘my_command’) para agarrar la salida. os.system devuelve el estado de salida del comando que he pasado (0 significa que el comando devuelto sin error). ¿Cómo puedo almacenar este valor que os.system lanza a STDOUT en una variable? Para que esta variable se pueda utilizar más adelante en la función de contador. Algo como el subproceso, os.popen puede ayudar. ¿Alguien puede sugerir?

import subprocess p = subprocess.Popen('my_command', stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, error = p.communicate() 
 a=os.popen("your command").read() 

nuevo resultado almacenado en la variable a 🙂

 import subprocess p = subprocess.Popen('my_command', stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True) out, error = p.communicate() 
 netstat -plant | awk '{print $4}' | grep %s:%s | wc -l 

Puedes usar Python para hacer la división, grepping y conteo:

 process = subprocess.Popen(['netstat', '-plant'], stdout=subprocess.PIPE) num_matches = 0 host_and_port = "%s:%s" % (ip, port) for line in process.stdout: parts = line.split() if parts[3] == host_and_port: # or host_and_port in parts[3] num_matches += 1 print num_matches