Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Redireccionar comando windows a archivo de texto
#1
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
Responder
#2
Por si a alguien le sirve he conseguido simular la redireccion haciendo esto :

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

Código:
for process in psutil.process_iter():
    if process.name.startswith("dni"):
        print(process.pid)  # ID del proceso.

Saludos.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#4
Lo acabo de solucionar , pego codigo por si en un futuro a alguien le sirve con otros procesos

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

en la 4 linea es texto = str© , no se porque lo convierte asi
Responder
#5
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.
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder


Salto de foro:


Usuarios navegando en este tema: 3 invitado(s)