【发布时间】:2017-11-23 17:12:29
【问题描述】:
在试图弄清楚如何使用 python 将“top”linux 命令的输出保存到变量然后使用 grep 获取一行之后,我无法做到。
我在 python 文档中阅读了关于 subprocess 模块的使用,但这似乎无法正常工作。那是因为当你在 linux 中运行 top 命令时,你会得到一个不断刷新的活跃窗口。 “top”与“ls”或“cp”不同。
所以我的问题是: 如何使用 python 获取系统统计信息,如 CPU 百分比等? (最好使用 top 命令,但如果我使用另一个命令或从文件中读取统计信息也可以)
提前致谢。
【问题讨论】:
-
到目前为止您尝试过什么? (顺便说一句,很可能通过管道(stdin)从顶部获取输出,但您将获得持续更新,因此您需要阅读一段时间,然后停止。)
-
如果你运行 'top -n 1' 它将显示当前进程而不刷新。对于文件的统计信息,使用 os.stat()。
-
您可以在批处理模式下运行 top -b 并解析输出。或者您可以阅读有关 /proc 文件系统的信息。
标签: python linux subprocess system