重複の可能性:
Python で外部コマンドを呼び出す
Pythonを使用して別のディレクトリでコマンドを実行したい。
これに使用されるさまざまな方法と、最も効率的な方法はどれですか?
私がやりたいことは次のとおりです。
cd dir1
execute some commands
return
cd dir2
execute some commands
重複の可能性:
Python で外部コマンドを呼び出す
Pythonを使用して別のディレクトリでコマンドを実行したい。
これに使用されるさまざまな方法と、最も効率的な方法はどれですか?
私がやりたいことは次のとおりです。
cd dir1
execute some commands
return
cd dir2
execute some commands
当然のことながら、Python を介してシェルで (単純な) コマンドを実行したい場合は、モジュールのsystem
関数を介して実行します。os
例えば:
import os
os.system('touch myfile')
コマンドの実行をさらに細かく制御できる、より洗練されたものが必要な場合は、subprocess
他の人が提案したモジュールを使用してください。
詳細については、次のリンクをたどってください。
呼び出されたシェル コマンドをより詳細に制御したい場合 (つまり、stdin および/または stdout パイプへのアクセス、または非同期での開始)、次のsubprocess
モジュールを使用できます。
import subprocess
p = subprocess.Popen('ls -al', shell=True, stdout=subprocess.PIPE)
stdout, stderr = p.communicate()
subprocess
モジュールのドキュメントも参照してください。
os.system("/dir/to/executeble/COMMAND")
例えば
os.system("/usr/bin/ping www.google.com")
pingプログラムが「/usr/bin」にある場合
当然、osモジュールをインポートする必要があります。
os.systemは出力を待機しません。出力が必要な場合は、次を使用する必要があります。
subprocess.callまたはそのようなもの
コマンドを実行したり、出力をチェックしたり、エラーメッセージを受け取ったりするための多くのモジュールを提供するPython Subprocessを使用できます。