PythonのPSutilモジュールと奇妙な問題
質問
これは完全に機能します:
def find_processes():
name = "ProcessName.exe"
pid_list = psutil.get_pid_list()
for pid in pid_list:
try:
if str(psutil.Process(pid).name()) == name:
return True
except:
pass
return False
.
これは:
def find_processes():
name = "ProcessName.exe"
pid_list = psutil.get_pid_list()
for pid in pid_list:
if str(psutil.Process(pid).name()) == name:
return True
return False
.
エラーを発生させる:アクセスしました:( PID= 560) 私はWindows環境にあり、すべてのプロセスの名前にアクセスする必要があります。私はすでにワークコード(前者)を持っているので、私の質問は好奇心からです。
最初の例では、try
/ except
ステートメントを実行するのは、2番目の例で除去されないのですか?
解決
各プロセスからのすべての情報は、rootユーザー/管理者でない限り、あなたが利用できるようになります。この質問を参照してください: Windows上のPython PSutilは、アクセスが拒否されました。
あなたはあなたの最初の例を変えるのが良いでしょう。
try:
if str(psutil.Process(pid).name()) == name:
return True
except AccessDenied:
print "Unable to access PID:",pid
. 所属していません StackOverflow