2014-01-24 41 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

相關問題