我正在研究需要读取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"
应该是单独的列表元素