首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python2子进程(dmidecode)到变量?

Python2子进程(dmidecode)到变量?
EN

Stack Overflow用户
提问于 2015-07-13 14:08:28
回答 2查看 932关注 0票数 0

我正在linux中运行dmidecode来获取硬件信息列表。读取输出并选择特定信息的最佳方法是什么?例如,获取产品名称: dmidecode的一部分?

目前,我正在将子进程输出写入文件,然后读取给定字符串的文件。这似乎是一种效率低下的做事方式。

另外,我知道模型,但对于我的生活,我无法让它工作,它只是不停地说没有bios属性

EN

回答 2

Stack Overflow用户

发布于 2015-07-13 14:22:27

如果您知道要查找的特定关键字,可以键入:dmidecode -s keyword

就你的情况而言,应该是:

代码语言:javascript
复制
dmidecode -s system-product-name

还可以按类型进行筛选。例如:

  • 若要返回系统信息: dmidecode -t1
  • 若要返回BaseBoard信息,请执行以下操作: dmidecode -t2
  • 若要返回底盘信息: dmidecode -t3
票数 2
EN

Stack Overflow用户

发布于 2015-07-13 14:25:19

您可以使用多种方法在python脚本中使用subprocess模块获取命令的输出。

  1. subprocess.Popen() -您可以使用这个Popen类启动命令行进程,将stdout指定为subprocess.PIPE,然后使用communicate函数获得结果。例子- 导入子进程p= subprocess.Popen('dmidecode‘,stdout=subprocess.PIPE)结果= p.communicate()
  2. subprocess.check_output() -此函数在执行命令后将命令的输出作为字节字符串返回(输出到stdout)。例子- 导入子进程结果= subprocess.check_output('dmidecode')

对于您的特殊情况,subprocess.check_output()可能更适合,因为您不需要为流程提供任何输入。

使用subprocess.Popen(),您还需要为流程提供输入,方法是为流程建立管道stdin

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

https://stackoverflow.com/questions/31385653

复制
相关文章

相似问题

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