2014-01-24 138 views
0

我想,当我在python运行它从蟒蛇如何使用os.system的输出分配给一个变量

/opt/vc/bin/vcgencmd measure_temp 

运行此命令将打印温度屏幕,并返回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中运行此命令并将实际温度分配给变量?

+0

我不认为'os.system'可以让你捕获输出。你可以尝试I/O将输出重定向到一个文件,然后在python – inspectorG4dget

+4

@ inspectorG4dget中读取该文件:或者更好的是,不要使用'os.system()'.. –

+0

或换句话说,唯一的“输出“的['os.system'](http://docs.python.org/2/library/os.html#os.system)是退出状态;孩子写入标准输出的任何内容都可以直接进入你自己的标准输出。 – abarnert

回答

7

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

+2

如果你看看'os.system'文档,他们明确地告诉你它有“限制”,并且“'subprocess'模块有更强大的功能来产生新的进程和检索他们的结果”, “使用该模块比使用此功能更可取。” – abarnert

相关问题