2015-08-30 37 views

回答

2

如果你想看到正在运行的进程,你可以使用os模块来执行ps unix命令

import os 
os.system("ps") 

这将列出的进程。

但是如果你想通过ID获取进程名称,你可以尝试ps -o cmd= <pid> 所以Python代码将

import os 
def get_pname(id): 
    return os.system("ps -o cmd= {}".format(id)) 
print(get_pname(1)) 

更好的方法是使用subprocess和管道。

import subprocess 
def get_pname(id): 
    p = subprocess.Popen(["ps -o cmd= {}".format(id)], stdout=subprocess.PIPE, shell=True) 
    return str(p.communicate()[0]) 
name = get_pname(1) 
print(name) 
+0

@Mahsa只是在一个循环中使用该函数,即对于pid列表,只需遍历该列表并使用函数 – nishparadox

4

psutil包使这非常容易。

import psutil 

process = psutil.Process(pid) 

process_name = process.name() 
+1

这是更好的模块。我试图记住这被称为。它不是procfs。 – Paul

+0

我收到一个错误: 'TypeError:'str'对象不可调用' – Mahsa

+0

@Mahsa,您使用的是旧版本的'psutil'。您通常应该升级,但现在只需使用'process.name'作为字符串而不是调用它。 – Cyphase

相关问题