您可以使用在Windows和UNIX上均可使用的psutil(https://github.com/giampaolo/psutil):
import psutilPROCNAME = "python.exe"for proc in psutil.process_iter(): if proc.name() == PROCNAME: print(proc)
在我的机器上打印:
<psutil.Process(pid=3881, name='python.exe') at 140192133873040>
编辑2017-04-27-这是一个更高级的实用程序功能,可根据进程的name(),cmdline()和exe()检查名称:
import osimport psutildef find_procs_by_name(name): "Return a list of processes matching 'name'." assert name, name ls = [] for p in psutil.process_iter(): name_, exe, cmdline = "", "", [] try: name_ = p.name() cmdline = p.cmdline() exe = p.exe() except (psutil.AccessDenied, psutil.ZombieProcess): pass except psutil.NoSuchProcess: continue if name == name_ or cmdline[0] == name or os.path.basename(exe) == name: ls.append(p) return ls



