我正在linux中运行dmidecode来获取硬件信息列表。读取输出并选择特定信息的最佳方法是什么?例如,获取产品名称: dmidecode的一部分?
目前,我正在将子进程输出写入文件,然后读取给定字符串的文件。这似乎是一种效率低下的做事方式。
另外,我知道模型,但对于我的生活,我无法让它工作,它只是不停地说没有bios属性
发布于 2015-07-13 14:22:27
如果您知道要查找的特定关键字,可以键入:dmidecode -s keyword
就你的情况而言,应该是:
dmidecode -s system-product-name还可以按类型进行筛选。例如:
发布于 2015-07-13 14:25:19
您可以使用多种方法在python脚本中使用subprocess模块获取命令的输出。
subprocess.Popen() -您可以使用这个Popen类启动命令行进程,将stdout指定为subprocess.PIPE,然后使用communicate函数获得结果。例子-
导入子进程p= subprocess.Popen('dmidecode‘,stdout=subprocess.PIPE)结果= p.communicate()subprocess.check_output() -此函数在执行命令后将命令的输出作为字节字符串返回(输出到stdout)。例子-
导入子进程结果= subprocess.check_output('dmidecode')对于您的特殊情况,subprocess.check_output()可能更适合,因为您不需要为流程提供任何输入。
使用subprocess.Popen(),您还需要为流程提供输入,方法是为流程建立管道stdin。
https://stackoverflow.com/questions/31385653
复制相似问题