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