python実行システムコマンド4つの方法と比較
1925 ワード
Pythonでシステムコマンドを実行する一般的な方法は以下の4つあります
注意:次のインスタンスコードはPython 3にあります.5で実行します.
一、os.システムメソッド
os.system(cmd)
サブ端末でシステムコマンドを実行すると、コマンド実行後の戻り情報および実行戻りの状態を取得できます.
実行後は2行の結果を返し、1行目は結果、2行目は実行状態情報
二、os.popenメソッド
os.popen(cmd)
コマンドを実行するだけでなく、実行後の情報オブジェクト(コマンドを実行した後の戻り情報を取得する必要がある場合によく使用されます)を返します.結果はパイプファイルで返されます.
三、commandsモジュール
getoutput:コマンド実行後の戻り情報を取得する
getstatus:実行コマンドのステータス値を取得します(実行コマンドは正常に数値0を返します.そうでない場合は0以外を返します)
getstatusoutput:実行コマンドのステータス値と戻り情報を取得する
注意1:クラスunixのシステムでこの方法で返す戻り値(status)は、osが呼び出されたため、スクリプトまたはコマンド実行後の戻り値とは異なる.wait()のため、具体的な原因はシステムwait()の実現を理解しなければならない.正しい戻り値(status)が必要で、戻り値を8ビット右にシフトするだけでいいです.
注意2:コマンドを実行するパラメータや戻りに中国語の文字が含まれている場合はsubprocessを使用することをお勧めします.
四、subprocessモジュール
スレッドの制御とモニタリングを用いて,返された結果を変数に割り当て,プログラムの処理を容易にする.豊富なパラメータで構成でき、カスタマイズ可能なオプションが多く、柔軟性が高い.以前はosを使っていました.Systemの時にファイル記述子が布団プロセスに継承される問題に遭遇し、close_を通過した.fds=Falseというパラメータで解決した.公式ドキュメント:http://python.usyiyi.cn/python_278/library/subprocess.html
ここで主に説明するpython実行システムコマンドの4つの方法と比較してpython実行システムコマンドの詳細については、次のリンクを参照してください.
注意:次のインスタンスコードはPython 3にあります.5で実行します.
一、os.システムメソッド
os.system(cmd)
サブ端末でシステムコマンドを実行すると、コマンド実行後の戻り情報および実行戻りの状態を取得できます.
>>> import os
>>> os.system('date')
2018 4 8 19 29 13 CST
0 # ,0
実行後は2行の結果を返し、1行目は結果、2行目は実行状態情報
二、os.popenメソッド
os.popen(cmd)
コマンドを実行するだけでなく、実行後の情報オブジェクト(コマンドを実行した後の戻り情報を取得する必要がある場合によく使用されます)を返します.結果はパイプファイルで返されます.
>>> import os
>>> nowtime = os.popen('date')
>>> print(nowtime.read())
2018 4 8 19 30 35 CST
三、commandsモジュール
getoutput:コマンド実行後の戻り情報を取得する
getstatus:実行コマンドのステータス値を取得します(実行コマンドは正常に数値0を返します.そうでない場合は0以外を返します)
getstatusoutput:実行コマンドのステータス値と戻り情報を取得する
>>> import commonds
>>> status, output = commands.getstatusoutput('date')
>>> print(status) # 0
>>> print(output) # 2018 4 8 19 31 45 CST
注意1:クラスunixのシステムでこの方法で返す戻り値(status)は、osが呼び出されたため、スクリプトまたはコマンド実行後の戻り値とは異なる.wait()のため、具体的な原因はシステムwait()の実現を理解しなければならない.正しい戻り値(status)が必要で、戻り値を8ビット右にシフトするだけでいいです.
注意2:コマンドを実行するパラメータや戻りに中国語の文字が含まれている場合はsubprocessを使用することをお勧めします.
四、subprocessモジュール
スレッドの制御とモニタリングを用いて,返された結果を変数に割り当て,プログラムの処理を容易にする.豊富なパラメータで構成でき、カスタマイズ可能なオプションが多く、柔軟性が高い.以前はosを使っていました.Systemの時にファイル記述子が布団プロセスに継承される問題に遭遇し、close_を通過した.fds=Falseというパラメータで解決した.公式ドキュメント:http://python.usyiyi.cn/python_278/library/subprocess.html
>>> import subprocess
>>> nowtime = subprocess.Popen('date', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
>>> print(nowtime.stdout.read())
2018 4 8 19 32 41 CST
ここで主に説明するpython実行システムコマンドの4つの方法と比較してpython実行システムコマンドの詳細については、次のリンクを参照してください.