除了過程請看下面的代碼:你運行它殺死所有蟒主要從當前
import matplotlib.pyplot as plt
plt.plot([1,2,3], [1,2,3])
plt.show()
每次,它會創建一個新的python.exe進程中的一個新的數字,如果你不關閉之前的數字。但是我想關閉所有之前打開的數據(這只是一個例子,請不要使用matplotlib解決方案),意味着所有以前打開的流程。
這是我的方法:
- 獲取當前進程ID與
os
- 獲得有關蟒蛇所有進程ID與
psutil
- 過濾掉電流ID從所有的Python標識
- 殺ID剩餘列表
import os
currentId = os.getpid()
import psutil
allPyIds = [p.pid for p in psutil.process_iter() if "python" in str(p.name)]
PyIdsToKill = [x for x in allPyIds if x != currentId]
for PyId in PyIdsToKill:
os.kill(PyId, 1)
它的工作原理是,它關閉除當前所有打開的python進程。 不過,我得到以下錯誤,當實際上存在處理關閉:
Traceback (most recent call last): File "C:....py", line 10, in for PyId in PyIdsToKill: OSError: [WinError 87] Falscher Parameter [Finished in 0.3s with exit code 1]
什麼是我的錯?
我在Windows 7專業版上運行:
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AMD64)] on win32
我從這個話題的其他答案得到** 1 **,它似乎工作。感謝提示! – thewaywewalk
不客氣。讓這是一個教訓:不要硬編碼幻數。 –