python - 我们可以使用psutil找到正在运行的进程的目录吗?

时间:2017-03-13 12:03:41

标签: python

我只想杀死从特定目录运行的所有正在运行的“python”进程。意味着文件(sample.py)驻留在特定文件夹中。

For ex: C:\myFolder\* 

使用psutil我们可以找到进程的路径还是杀死来自 C:\ myFolder \ * 的所有进程,除了某些进程?

 import psutil
 for process in psutil.process_iter():
    print process.cmdline:

2 个答案:

答案 0 :(得分:0)

根据评论,如果要查找正在运行的python脚本的文件位置 - 使用psutil.Process.name() == 'python'来过滤python进程。然后使用os.path.abspath()获取完整路径。

以下代码示例可能有效:

import psutil
import os

"""
Python script path using psutil
"""

processes = filter(lambda p: psutil.Process(p).name() == "python", psutil.pids())

scripts = []
paths = []
for pid in processes:
    try:
        scripts.append(psutil.Process(pid).cmdline()[1])
    except IndexError:
    pass

for script in scripts:
    paths.append(os.path.abspath(script))

print paths

答案 1 :(得分:0)

如果cmdline[1]中的脚本路径不是绝对路径,则可以使用cwd()中的psutil来获取工作目录,然后,将目录字符串与脚本路径连接起来字符串,然后您可以获取python脚本的位置。