我正在使用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)
答案 0 :(得分:0)
假设您有一个Unix框,并且您可以获取相关stdin,stdout,...的文件描述符,您可以使用select.select
函数来监视这些流上的活动。