【问题标题】:How to assign output of os.system to a variable [duplicate]如何将 os.system 的输出分配给变量[重复]
【发布时间】:2014-02-16 02:15:26
【问题描述】:

我想从 python 运行这个命令

/opt/vc/bin/vcgencmd measure_temp

当我在 python 中运行它时,它会将温度打印到屏幕上并返回 0。当我尝试将它分配给一个变量时,它也会分配 0。

>>> import os
>>> os.system('/opt/vc/bin/vcgencmd measure_temp')
temp=42.8'C
0
>>> temp=os.system('/opt/vc/bin/vcgencmd measure_temp')
temp=42.8'C
>>> temp
0
>>>

如何在 python 中运行此命令并将实际温度分配给变量?

【问题讨论】:

  • 我不认为os.system 让您捕获输出。您可以尝试 I/O 将输出重定向到文件,并在 python 中读取该文件
  • @inspectorG4dget:或者更好的是,不要使用os.system()..
  • 或者,换句话说,os.system 的唯一“输出”是退出状态;孩子写到标准输出的任何东西都会直接进入你自己的标准输出。
  • @MartijnPieters:或者只是将文档阅读到os.system 而不是盲目地使用它,这使得答案显而易见......

标签: python os.system


【解决方案1】:

os.system 不返回输出,请使用subprocess.check_output

【讨论】:

  • 如果您查看os.system 文档,他们会明确告诉您它有“限制”并且“subprocess 模块具有更强大的工具来生成新进程并检索其结果”,并且“使用该模块比使用此功能更可取。”
猜你喜欢
  • 2014-01-08
  • 2012-02-02
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
  • 2016-11-23
  • 2011-03-31
相关资源
最近更新 更多