Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/04/2009, 14:22
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
No puedo guardar la salida de una orden os.system() ?¿

Hola,

Tengo un problema, quiero poder procesar la salida de mi programa, pero consigo que me escriba el resultado de la orden dig (programa para resolver dns)

Este es el codigo del programa.
Lee un fichero con dominios

Código:
import sys, os
         
entrada=sys.argv[1]
file = open(entrada,'r')

for linea in file:
	linea = linea.split('\n')[0]
	print 'DOMINIO:'+linea

	orden="dig " +linea+ " mx +short"
	os.system(orden)
Y la salida que muestra es

DOMINIO:pepe.com
DOMINIO:google.com
10 smtp4.google.com.
10 smtp1.google.com.
10 smtp2.google.com.
10 smtp3.google.com.
DOMINIO:tashia.es
10 mx2.dondns.com.
0 mx.dondns.com.
DOMINIO:yahoo.com
1 e.mx.mail.yahoo.com.
1 f.mx.mail.yahoo.com.
1 g.mx.mail.yahoo.com.
1 a.mx.mail.yahoo.com.
1 b.mx.mail.yahoo.com.
1 c.mx.mail.yahoo.com.
1 d.mx.mail.yahoo.com.


Quiero que esta salida sea redirigida a un fichero. Lo he intentado llamando la programa de la siguiente manera

prog.py dominios.txt > fileMX.txt

Pero dentro del fichero solo me guarda los dominios
DOMINIO:pepe.com
DOMINIO:google.com
DOMINIO:tashia.es
DOMINIO:yahoo.com

La salida de os.system(orden) no me la copia al fichero. He probado poniendo un print delante de la orden, pero lo que consigo es que me printe 0 o 1 en función si se ejecutó bien la orden o no.

Alguien sabe como printar en un fichero la salida de una orden de sistema?

Muchas gracias