Foros Python

Versión completa: Redireccionar comando windows a archivo de texto
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Necesito redireccionar la llamada a tasklist de windows a un fichero de texo para poder leerlo y matar unos procesos que tienen nombre variable , pero que siempre empiezan igual , necesito matar :

dnieservice.exe
dni3edhy.tmp.exe

otra vez seran:

dnieservice.exe
dniaqr56.tmp.exe

Puedo matar sin problema dnieservice , pero necesito saber el nombre del otro proceso , por eso necesito poder redireccionar el resultado de tasklist a un fichero de texto .

Alguna idea?

Lo que pretendo hacer es esto :

Tasklist > C:\LectorDocum\task.tx
Por si a alguien le sirve he conseguido simular la redireccion haciendo esto :

b=os.popen('tasklist','r',-1)
j = b.read()
print j
Puedes usar el módulo psutil. En tu caso tendrías que buscar los procesos que comiencen con "dni":

  1. for process in psutil.process_iter():
  2. if process.name.startswith("dni"):
  3. print(process.pid) # ID del proceso.


Saludos.
Lo acabo de solucionar , pego codigo por si en un futuro a alguien le sirve con otros procesos

  1. b=os.popen('tasklist','r',-1)
  2. c=b.read()
  3. outfile = open("c:\\LectorDocum\\task.txt", 'w') # Indicamos el valor 'w'.
  4. texto=str©#Convertir a string c
  5. outfile.write(texto)
  6. outfile.close()
  7. #Leemos el contenido para matar los procesos generados por dni
  8. infile = open("c:\\LectorDocum\\task.txt", 'r')
  9. print "Buscando ......."
  10. for linea in infile:
  11. if linea[0:3]=="DNI":
  12. kill(linea[:11])
  13. # Cerramos el fichero.
  14. infile.close()


en la 4 linea es texto = str© , no se porque lo convierte asi
Es un error del resaltado de sintaxis. Lo solucionaré en cuanto pueda.

Es una buena práctica utilizar linea.startswith("DNI") en lugar de linea[0:3]=="DNI", mejora la legibilidad Smile.

Saludos.