2010-06-30 10 views

Respuesta

5

dos partes:

Shell

netstat | python read_netstat.py 

Python read_netstat.py

import sys 
variable = sys.stdin.read() 

que leerá la salida de netst a en una variable.

6

Es posible. Ver:

http://docs.python.org/library/subprocess.html#replacing-bin-sh-shell-backquote

En Python 2.4 y superiores:

from subprocess import * 
x = Popen(["netstat", "-x", "-y", "-z"], stdout=PIPE).communicate()[0] 
+1

¿Estás seguro de que funciona? No creo que los backticks llamen al shell en Python y el uso de ellos no se recomienda de todos modos. –

+0

Hola, pensé que lo probaría. Los backticks son necesarios al menos usando cygwin. Sin apoyos, recibo ayuda para escupirme. >>> x = Popen (["netstat", "-a", "-b", "-e"], stdout = PIPE) .communicate() [0] >>> x 'Estadísticas de interfaz \ r \ n \ r \ n Recibido Enviado \ r \ n \ r \ nBytes 636096584 44729983 \ rn \ nUnicast paquetes 540296 297233 \ r \ nPaquetes no unidifusión 1058608 338 \ r \ nDiscards 0 0 \ r \ nErrores 0 13 \ r \ nProcedimientos desconocidos 4405 \ r \ n ' – manifest

+0

Intenté en DOS también, el mismo trato. Back-ticks requerido. – manifest

2

Tome una mirada en el módulo de subprocess. Le permite iniciar nuevos procesos, interactuar con ellos y leer sus resultados.

En particular, consulte la sección Replacing /bin/sh shell backquote:

output = Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0] 
Cuestiones relacionadas