この単純なPythonスクリプトが実際のRedhatバージョンを印刷しないのはなぜですか?
version = os.system( ' cat /etc/redhat-release | awk \'{print $7}\' ' )
print ("my version is " ,version)
私が走るとき
私たちは:
7.2
('my version is ', 0)
- なぜ7.2の代わりに0が出るのですか?
- os.systemからバージョン7.2をインポートするのを防ぐ方法は?
ベストアンサー1
os.system()
プロセスを実行するだけです。、これは出力をキャプチャしません。
コマンドが出力を生成すると、インタプリタ標準出力ストリームに送信されます。
戻り値はプロセスの終了コードです。
Unixでは、戻り値は、wait()で指定された形式でエンコードされたプロセスの終了状態です。
あなたは次のようなものを使用する必要がありますsubprocess.check_output()
または、subprocess.Popen()
出力を直接キャプチャします。
>>> arch = subprocess.check_output("uname -a | awk '{print $9}'", shell=True);
>>> arch
'x86_64\n'