我正在研究需要读取iotop输出的python脚本。但是stdout似乎是空白。目标是将iotop的输出存储为字符串,然后供以后搜索和使用。它在带有Python 3.6的Ubuntu 16.04上运行。我正在使用“ sudo python3.6 script.py”调用脚本,因为iotop需要管理员权限。

p = subprocess.Popen(['iotop','-b','-n','1','-a','-k'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
try:
    outs, errs = p.communicate(timeout=15)
except subprocess.TimeoutExpired:
    p.kill()
    outs, errs = p.communicate()
returncode=p.returncode
print(outs.decode('UTF-8'))


在bash终端中运行此命令可以得到预期的输出。我究竟做错了什么?

sudo iotop -b -n 1 -a -k

最佳答案

"-n""1"应该是单独的列表元素

10-08 03:56