用于捕获top命令输出的python脚本

时间:2014-09-05 06:45:59

标签: linux python-2.7

我试图使用以下python脚本捕获top命令的输出:

    import os
    process = os.popen('top')
    preprocessed = process.read()
    process.close()
    output = 'show_top.txt'
    fout = open(output,'w')
    fout.write(preprocessed)
    fout.close()

但是,该脚本不适用于top。它被困了很长时间。但是它适用于像'ls'这样的命令。我不知道为什么会发生这种情况?

2 个答案:

答案 0 :(得分:3)

由于您正在等待流程完成,因此您需要告诉top仅打印一次输出,然后退出。

您可以通过运行:

来实现
top -n 1

答案 1 :(得分:0)

从python读取stdout时需要

-b 参数

os.popen('top -b -n 1')

top -b -n 1