Pythonのsubprocessとは何ですか?
subprocessとは、子プロセスを作成し、その子プロセスと通信するためのPythonの標準ライブラリ。
サブプロセスの主な使用目的は、他の実行可能プログラムまたはスクリプトを呼び出してシステムコマンドを実行することです。コマンドを実行するためのさまざまな方法を提供し、コマンドの出力を取得し、またエラーメッセージや実行プロセスのステータスを得ることができます。
subprocessの基本的な使用方法を示します。
- subprocess.run()関数を使用してコマンドを実行し、コマンドが完了するのを待つ
- import subprocessresult = subprocess.run(
[‘echo’, ‘ハロー、世界’],
capture_output=True,
text=True,
)
print(result.returncode) # コマンドの終了コードを出力
print(result.stdout) # コマンドの標準出力を出力
print(result.stderr) # コマンドの標準エラー出力を出力 - subprocess.Popen()関数を用いて、新しいプロセスオブジェクトを作成し、バックグラウンドでコマンドを実行する
- import subprocessprocess = subprocess.Popen([‘echo’, ‘こんにちは世界!’])
process.wait() - サブプロセスcheck_output()関数を使ってコマンドを実行し、そのコマンドの実行結果を出力する
- import subprocess
output = subprocess.check_output([‘echo’, ‘こんにちは、世界!’], text=True)
print(output) - subprocess.call() 関数を使用してコマンドを実行し、コマンドの終了コードを返します。
- subprocess をインポートするreturncode = subprocess.call([‘echo’, ‘こんにちは、世界!’])
print(returncode)
上記の基本的な使い方に加えて、subprocessでは作業ディレクトリや環境変数、タイムアウトなどのより複雑な要求にも対応するためのメソッドや引数を提供しています。詳細については、公式ドキュメントを参照してください。