Python-システムコマンドを実行する4つの方法

2725 ワード

一、os.システムメソッド
この方法は,標準Cのsystem()関数を直接呼び出し,1つのサブ端末でのみシステムコマンドを実行し,コマンド実行後の戻り情報を取得できない.
os.System(cmd)の戻り値.実行に成功すると、コマンドの実行に成功したことを示す0が返されます.そうでなければ、実行エラーです.
OSを使用します.System戻り値は、shellスクリプトを呼び出した後、呼び出したスクリプトを殺す信号番号、上位はスクリプトの終了状態コードの16ビットのバイナリ数を返すスクリプトの終了状態コードである.
os.System()戻り値0 linuxコマンド戻り値も0です.
os.System()の戻り値は256で、16ビットのバイナリ数は00000000000000000、上位8ビットの10進数は1に変換され、linuxコマンドの戻り値1に対応します.
os.System()の戻り値は512で、16ビットのバイナリ数は:0000010000000000、8ビットの高さは10進数に2に変換され、linuxコマンドの戻り値2に対応します.
1 2 3 import   os result  =   os.system( 'cat /etc/passwd' ) print (result)       # 0
二、os.popenメソッド
os.popen()メソッドは、コマンドを実行するだけでなく、実行後の情報オブジェクト(コマンドを実行した後の戻り情報を取得する必要がある場合によく用いられる)を返し、パイプファイルを介して結果を返します.osを通るpopen()はfile readのオブジェクトを返し、read()を読み出す操作で実行された出力が表示されます.
1 2 3 import   os result  =   os.popen( 'cat /etc/passwd' ) print (result.read())
三、commandsモジュール
1 2 3 4 5 6 7 8 import   commands   status  =   commands.getstatus( 'cat /etc/passwd' ) print (status) output  =   commands.getoutput( 'cat /etc/passwd' ) print (output) (status, output)  =   commands.getstatusoutput( 'cat /etc/passwd' ) print (status, output)
四、subprocessモジュール
Subprocessは強力なサブプロセス管理モジュールであり、osを置き換えるものである.system ,os.spawn*などの方法のモジュールです.
コマンドを実行するパラメータや戻りに中国語の文字が含まれている場合はsubprocessを使用することをお勧めします.
1 2 3 4 5 6 import   subprocess res  =   subprocess.Popen( 'cat /etc/passwd' , shell = True , stdout = subprocess.PIPE, stderr = subprocess.STDOUT)  # # print res.stdout.read()  # for   line  in   res.stdout.readlines():      print   line res.stdout.close()          #
五、まとめ:
os.System:プログラム実行コマンドの戻り値を取得します.
os.popen:プログラム実行コマンドの出力結果を取得します.
commands:戻り値とコマンドの出力結果を取得します.