我正在尝试从 subprocess.call 中提取一行,但到目前为止我还没有成功。我想用许多不同的 subprocess.calls 来做到这一点,但这里有一个例子:
output = subprocess.call('vmstat -s, shell=True)
vmstat -s 简单返回当前内存状态的列表。我想阅读第 2 行(已用内存)并将其存储在变量中供以后使用。
在 python 中执行此操作的最佳方法是什么?
谢谢
使用check_output
代替call
:
>>> subprocess.check_output('vmstat -s', shell=True).splitlines()
或者你可以通过管道传输stdout
:
>>> from subprocess import Popen, PIPE
>>> for line in Popen('vmstat -s', shell=True, stdout=PIPE).stdout:
... print(line)
...
b' 3717436 K total memory\n'
b' 2151640 K used memory\n'
b' 1450432 K active memory\n'
...
我是一名优秀的程序员,十分优秀!