如何使用 python 获取进程的 pid
How to get the pid of process using python
我有一个任务列表文件 firefox , atom , gnome-shell
我的代码
import psutil
with open('tasklist', 'r') as task:
x = task.read()
print (x)
print ([p.info for p in psutil.process_iter(attrs=['pid', 'name']) if x in p.info['name']])
欲出
[{'pid': 413, 'name': 'firefox'}]
[{'pid': 8416, 'name': 'atom'}]
[{'pid': 2322, 'name': 'gnome-shell'}]
import wmi # pip install wmi
c = wmi.WMI()
tasklist = []
for process in c.Win32_Process():
tasklist.append({'pid': process.ProcessId, 'name': process.Name})
print(tasklist)
对于 Unix:
import psutil
tasklist = []
for proc in psutil.process_iter():
try:
tasklist.append({'pid': proc.name(), 'name': proc.pid})
except:
pass
print(tasklist)
类似于上面的答案,但从问题来看,您似乎只对所有 运行 任务的一个子集感兴趣(例如 firefox、atom 和 gnome-shell)
您可以将您感兴趣的任务放入列表中..然后遍历所有进程,只将与您的列表匹配的任务附加到最终输出,如下所示:
import psutil
tasklist=['firefox','atom','gnome-shell']
out=[]
for proc in psutil.process_iter():
if any(task in proc.name() for task in tasklist):
out.append([{'pid' : proc.pid, 'name' : proc.name()}])
这将为您提供所需的列表列表输出,其中每个列表都有一个带有 pid 和 name 键的字典...您可以将输出调整为您喜欢的任何格式
您请求的确切输出可以通过以下方式获得:
for o in out[:]:
print(o)
我有一个任务列表文件 firefox , atom , gnome-shell
我的代码
import psutil
with open('tasklist', 'r') as task:
x = task.read()
print (x)
print ([p.info for p in psutil.process_iter(attrs=['pid', 'name']) if x in p.info['name']])
欲出
[{'pid': 413, 'name': 'firefox'}]
[{'pid': 8416, 'name': 'atom'}]
[{'pid': 2322, 'name': 'gnome-shell'}]
import wmi # pip install wmi
c = wmi.WMI()
tasklist = []
for process in c.Win32_Process():
tasklist.append({'pid': process.ProcessId, 'name': process.Name})
print(tasklist)
对于 Unix:
import psutil
tasklist = []
for proc in psutil.process_iter():
try:
tasklist.append({'pid': proc.name(), 'name': proc.pid})
except:
pass
print(tasklist)
类似于上面的答案,但从问题来看,您似乎只对所有 运行 任务的一个子集感兴趣(例如 firefox、atom 和 gnome-shell)
您可以将您感兴趣的任务放入列表中..然后遍历所有进程,只将与您的列表匹配的任务附加到最终输出,如下所示:
import psutil
tasklist=['firefox','atom','gnome-shell']
out=[]
for proc in psutil.process_iter():
if any(task in proc.name() for task in tasklist):
out.append([{'pid' : proc.pid, 'name' : proc.name()}])
这将为您提供所需的列表列表输出,其中每个列表都有一个带有 pid 和 name 键的字典...您可以将输出调整为您喜欢的任何格式
您请求的确切输出可以通过以下方式获得:
for o in out[:]:
print(o)