我只想杀死从特定目录运行的所有正在运行的“python”进程。意味着文件(sample.py)驻留在特定文件夹中。
For ex: C:\myFolder\*
使用psutil我们可以找到进程的路径还是杀死来自 C:\ myFolder \ * 的所有进程,除了某些进程?
import psutil
for process in psutil.process_iter():
print process.cmdline:
答案 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脚本的位置。