【发布时间】:2017-12-08 01:02:24
【问题描述】:
我正在使用 python 编写一个基准测试实用程序。我希望我的 python 程序执行一个程序并捕获输出并获得其最大资源使用率。以下代码每秒运行一次命令并获取其内存和处理器使用情况,但我如何也访问 python 内部的输出?这是我目前的设置:
pid = psutil.Popen(cmd_args, shell=False, stdout=subprocess.PIPE)
p = psutil.Process(pid=pid.pid)
x = 0
cpu_util = []
mem_util = []
while p.status() != "zombie":
if x % 10 == 0:
with p.oneshot():
cpu_util.append(p.cpu_percent())
mem_util.append(p.memory_percent())
x += 1
time.sleep(0.1)
max_cpu_load = max(cpu_util)
max_mem_load = max(mem_util)
#What I would like to do, but don't understand
print(pid.stdout)
【问题讨论】:
-
是否要将输出导出到文件? “获取输出”是什么意思?
-
这与stackoverflow.com/questions/38630421/… 的问题相似,因此您可能会发现那里的答案很有帮助。
-
@YuZhang,谢谢,我更新了我的问题。我想访问我的 python 程序中的标准输出和标准错误。
-
使用
Popen.communicate()。这与:stackoverflow.com/questions/31833897/…
标签: python