首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python无法获取iotop输出

Python无法获取iotop输出
EN

Stack Overflow用户
提问于 2019-12-31 11:25:04
回答 2查看 123关注 0票数 1

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

代码语言:javascript
复制
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终端中运行此命令会得到预期的输出。我做错了什么?

代码语言:javascript
复制
sudo iotop -b -n 1 -a -k
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-05 18:38:13

删除shell=True使代码以我想要的方式工作。

代码语言:javascript
复制
p = subprocess.Popen(['iotop','-b','-n','1','-a','-k'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
票数 0
EN

Stack Overflow用户

发布于 2019-12-31 11:27:34

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59539216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档