Comment utiliser Python pour déterminer quels programmes sont en cours d'exécution. Je suis sur Windows.Détermination des programmes en cours d'exécution en Python
Répondre
import os
os.system('WMIC /OUTPUT:C:\ProcessList.txt PROCESS get Caption,Commandline,Processid')
f = open("C:\ProcessList.txt")
plist = f.readlines()
f.close()
maintenant plist contient une liste séparée par des espaces de processus formaté:
- La première colonne correspond au nom du fichier exécutable qui exécute
- La deuxième colonne est la commande qui représente le fonctionnement processus
- la troisième colonne est le processus ID
Cela devrait être simple à p cul avec python. Notez que la première ligne de données sont des étiquettes pour les colonnes, et non des processus réels.
Notez que cette méthode ne fonctionne que sur Windows!
Merci, WMIC a bien fonctionné. Malheureusement, le fichier texte en sortie n'était pas si facile à analyser. Il est en UTF-16 donc j'ai dû le décoder et le ré-encoder en ASCII pour analyser facilement en utilisant if (processName dans procList): return true – Murkantilism
Merci à @ hb2pencil pour la commande WMIC! Voici comment vous pouvez diriger la sortie sans fichier:
import subprocess
cmd = 'WMIC PROCESS get Caption,Commandline,Processid'
proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
for line in proc.stdout:
print line
informations Piping de processus sous commandes n'est pas idéal par rapport à un outil python réel destiné à l'exécution du processus. Essayez le module psutil. Pour obtenir une liste des numéros de processus, faire:
psutil.get_pid_list()
Je crains que vous devez télécharger ce module en ligne, il est pas inclus dans les distributions de python, mais cela est une meilleure façon de résoudre votre problème. Pour accéder au nom du processus, vous avez un numéro pour, faites:
psutil.Process(<number>).name
Cela devrait être ce que vous cherchez. De plus, voici un moyen de trouver si un processus spécifique est en cours d'exécution:
def process_exists(name):
i = psutil.get_pid_list()
for a in i:
try:
if str(psutil.Process(a).name) == name:
return True
except:
pass
return False
Il utilise le nom du fichier exécutable, de sorte que, par exemple, pour trouver une fenêtre PowerShell, vous feriez ceci:
process_exists("powershell.exe")
get_pid_list() est obsolète, utilisez pids() à la place – jake77
J'ai fait quelques tests et pour moi sur win10 psutil prend environ 10 fois plus pour effectuer la même tâche que WMIC – user2145184
Je recevais un accès refusé avec get_pid_list(). Une nouvelle méthode a fonctionné pour moi sur Windows et OSX:
import psutil
for proc in psutil.process_iter():
try:
if proc.name() == u"chrome.exe":
print(proc)
print proc.cmdline()
except psutil.AccessDenied:
print "Permission error or access denied on process"
- 1. programmes en cours d'exécution en parallèle, lecture/écriture en C
- 2. Détermination d'un fuseau horaire en Python
- 3. cours de décorateur en Python
- 4. Détermination de la section en cours de visualisation
- 5. Détermination du contrôleur en cours d'utilisation pour Kohana
- 6. Détermination du type d'application en cours d'exécution (.NET)
- 7. Détermination de la page Web Mac Safari en cours à l'aide de Python
- 8. en cours VB et C# programmes dans Ubuntu
- 9. Comment exclure des fichiers d'une recherche en cours d'utilisation ou en cours de copie dans python?
- 10. Comment puis-je supprimer un bureau Win32 avec des programmes en cours d'exécution et mettre fin à ces programmes?
- 11. faire des programmes python "chat" via pipe
- 12. Test des dépendances du module Python en cours d'installation
- 13. Débogage d'un processus python en cours d'exécution
- 14. Déboguer des programmes python dans emacs
- 15. compiler C++ en programmes "réels"
- 16. Détermination de Referer en PHP
- 17. Comment obtenir le fichier en cours, la classe en cours et la méthode actuelle avec Python?
- 18. Deux programmes différents en Flash
- 19. Importer des classes en python
- 20. programme en cours d'exécution x86 _on_ LLVM
- 21. Supprimer des éléments d'une liste en cours d'itération sans utiliser de mémoire supplémentaire en Python
- 22. Pourquoi les programmes C requièrent-ils des décompilateurs mais pas les programmes python?
- 23. Implémentation python unicode (en utilisant des programmes externes: cygnative plink ssh rsync)
- 24. Récupérer les noms des processus en cours
- 25. profilage Python Scripts en cours d'exécution sur mod_wsgi
- 26. Communiquer avec un démon python en cours d'exécution
- 27. Comment vérifier si je cours sous Windows en Python?
- 28. Méthode pour visualiser un programme Python en cours d'exécution
- 29. Python en code C?
- 30. Comment écraser un fichier en cours de lecture par Python
Hey! Bienvenue à StackOverflow! Ce serait très utile si vous avez posté des choses que vous avez essayées mais qui n'ont pas fonctionné pour vous. Cela permet aux personnes qui répondent aux questions de savoir ce que vous rencontrez des problèmes. Bonne chance avec votre question! –