如何使用Python來確定當前正在運行的程序。我在Windows上。在Python中確定正在運行的程序
回答
import os
os.system('WMIC /OUTPUT:C:\ProcessList.txt PROCESS get Caption,Commandline,Processid')
f = open("C:\ProcessList.txt")
plist = f.readlines()
f.close()
現在的plist包含的處理的格式化的空格隔開的列表:
- 第一列是在運行
- 第二列中的可執行文件的名稱是一個表示運行命令過程
- 第三列是進程ID
這應該是簡單至p與蟒蛇屁股。請注意,第一行數據是列的標籤,而不是實際的過程。
請注意,此方法只適用於Windows!
謝謝,WMIC運作良好。 不幸的是,輸出文本文件不容易解析。它是用UTF-16編碼的,所以我必須解碼並重新編碼爲ASCII碼才能使用if(procList中的processName)輕鬆解析:返回true – Murkantilism 2013-04-02 18:17:58
感謝@ hb2pencil的WMIC命令!下面是你可以不用管文件中的輸出:從子流程
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
管道命令的信息是不理想相比,實際的Python的工具意味着越來越過程。嘗試psutil模塊。爲了獲取進程號的列表,這樣做:
psutil.get_pid_list()
恐怕你必須在網上下載這個模塊,它不包含在Python發行,但是這是解決你的問題的較好方法。要獲得你有一個號碼的過程的名稱,請執行:
psutil.Process(<number>).name
這應該是你在找什麼。此外,這裏是一個辦法找到,如果一個特定的進程正在運行:
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
它使用的可執行文件的名稱,因此,例如,找一個PowerShell窗口中,你可以這樣做:
process_exists("powershell.exe")
get_pid_list()已棄用,請使用pids()而不是 – jake77 2015-10-16 19:58:49
我做了一些測試,對我來說在win10上,psutil需要大約10倍的時間來完成與管道WMIC相同的任務 – user2145184 2018-03-08 18:42:27
我得到的訪問被get_pid_list()拒絕。一個新的方法爲我在Windows和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. 修改正在運行的python程序
- 2. 在python中運行程序的程序
- 3. 確定進程是否正在運行?
- 4. Python,確定Unix進程是否正在運行的正確方法是什麼?
- 5. 確定正在運行的應用程序的類型(.NET)
- 6. Python正在運行線程
- 7. 如何確保正在運行的進程正在運行?
- 8. 在python腳本中終止正在運行的應用程序
- 9. 安裝.pkg:確定正在更新的應用程序是否正在運行?
- 10. 確定哪個node.js程序正在運行
- 11. 如何確定應用程序是否正在運行?
- 12. VBS如何確定程序是否正在運行
- 13. 如何確定屏幕保護程序正在運行?
- 14. 運行在內存中的Python程序
- 15. 無法在使用Python的Centos中正確運行套接字程序
- 16. SIGPIPE正在運行程序
- 17. 在C中運行setuid程序的正確方法
- 18. 確定如果Python是在Ubuntu正在運行Linux
- 19. python 2.7線程沒有正確運行
- 20. 正在運行的進程的Python REPL
- 21. 以編程方式確定我正在運行的發行版
- 22. 如何確定我的python腳本是否正在運行?
- 23. Nicing正在運行的Python進程?
- 24. 對正在運行的Python應用程序進行採樣
- 25. python程序在IDLE中運行不在程序中
- 26. 在python中運行程序提示
- 27. 在IDLE中運行python程序
- 28. 在Python shell中運行程序
- 29. 程序不會在Python龜中運行
- 30. 如何在Python中運行程序。
嘿!歡迎來到StackOverflow!如果您發佈了您嘗試過的但尚未爲您工作的內容,這將非常有幫助。這可以讓回答問題的人知道你遇到了什麼問題。祝你好運! – 2010-08-07 05:37:22