実行したコマンドの出力をos.system
変数に割り当てて、画面に出力されないようにしたいのですが、以下のコードでは出力が画面に送信され、出力される値はvar
0 です。これは、コマンドが正常に実行されたかどうかを示していると思います。コマンド出力を変数に割り当てて、画面に表示されないようにする方法はありますか?
var = os.system("cat /etc/services")
print var #Prints 0
ベストアンサー1
からこの質問かなり前に質問しましたが、あなたが使いたいのは次のものですpopen
:
os.popen('cat /etc/services').read()
これは、subprocess.Popen を使用して実装されます。サブプロセスを管理および通信するためのより強力な方法については、そのクラスのドキュメントを参照してください。
対応するコードは次のとおりですsubprocess
:
import subprocess
proc = subprocess.Popen(["cat", "/etc/services"], stdout=subprocess.PIPE, shell=True)
(out, err) = proc.communicate()
print("program output:", out)