我在windows 8.1上的python 64位上使用psutil 2.1.2。我使用psutil.process_iter()遍历正在运行的进程以获取特定进程的详细信息。由于某种原因,我不明白,即使它显示在任务管理器的进程和Process Explorer的psutil.process_iter()不会返回所有正在运行的进程
for proc in psutil.process_iter():
try:
if proc.name() == 'svchost.exe': # patch for debugging
pass #script never gets here
opened_files = proc.open_files()
opened_files = [opened_file[0] for opened_file in opened_files]
if file_path in opened_files:
processes.append(proc)
except (psutil.AccessDenied, psutil.NoSuchProcess):
pass
我检查了PROC名称,这是从来没有我在寻找的过程。 我看不到的过程的一个例子是svchost.exe
感谢您的帮助!
从另一个方向看,使用从psutil.pids()获得的进程PID。 'psutil.Process(pid).open_files()'产生'psutil.AccessDenied'。在proc对象中,这个PID的BTW进程名称为None。有没有办法解决这个问题? – 2014-10-29 14:49:48