gpt4 book ai didi

python - 有什么方法可以收集进程信息吗?

转载 作者:太空宇宙 更新时间:2023-11-04 05:58:49 24 4
gpt4 key购买 nike

我目前运行:

ps -f -u vinish | sort -k5

但是如何在 Python 中执行此操作而不在代码中编写相同的带引号的命令?

为了执行 bash 命令,我使用 os.system('<cmd>')或调用subprocess ,但我正在寻找其中不包含任何 bash 命令的东西。

最佳答案

您可以对 subprocess.check_output() 的输出进行排序:

import subprocess

processes = subprocess.check_output(['ps', '-f', '-u', 'vinish'])
for line in sorted(processes.splitlines(), key=lambda l: int(l.split()[1])):
print(line)

这比 sort -k5 输出更好,因为它提取第二列并按数字对其进行排序。

请注意,没有创建任何子 shell(此处没有执行 bash 命令); Python直接执行ps命令。这是无需安装第三方库即可获取进程信息的最简单方法。

如果您确实想避免执行外部命令,则必须使用附加库。我推荐psutil library这里:

import psutil

matching = [proc for proc in psutil.process_iter() if proc.username() == 'vinish']
for proc in sorted(matching, key=lambda p: p.pid):
print(proc)

请参阅psutil.Process() class documentation了解每个 proc 对象以信息和功能的方式提供的详细信息。

关于python - 有什么方法可以收集进程信息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28789258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com