
田中太郎
Pythonの標準モジュール「subrocess」を使用してPythonスクリプトからLinuxコマンドを実行します
はじめに
簡単なサンプルを作成しました
下記をコピーして実行します
sample1.py
import subprocess
command = ["echo","hoge"]
process = subprocess.run(command)
# 出力
# hoge
使い方
subprocess.run(<command>)
で<command>に格納されているLinuxコマンドがコマンドライン上で実行されます
ここで、
subprocess.run()
の引数はリストでコマンドライン上で入力するときに空白を入れる箇所ごとに分けます
上記の例では
command = [“echo”, “hoge”]
としていますが
command = [“echo hoge”]
を入力するとエラーになります
import subprocess
command = ["echo hoge"]
process = subprocess.run(command)
# 出力
# エラー
サンプル
Linuxコマンドの実行が完了したか確認する
subprocess.run(command)
で実行した結果が成功すると
subprocess.run(command).returncode
で0が返されます
上記を使用することで、コマンドが成功したかどうかを判断します
sample2.py
import subprocess
command = ["grep", "-q", "'fuga'", "sample2.py"]
process = subprocess.run(command)
if not process.returncode:
print("OK")
else:
print("NG")
# 出力
# OK
標準出力を取得する
process = subprocess.run(command, encoding=”utf-8″, capture_output=True)
でcommandの結果を取得して
process.stdout
で出力を取り出せます
sample3.py
import subprocess
command = ["echo", "hoge"]
process = subprocess.run(command, encoding="utf-8", capture_output=True)
# process = subprocess.run(command, encoding="utf-8", stdout=subprocess.PIPE) # Python3.6以下の場合
print(process.stdout)
# 出力
# hoge
まとめ
Pythonの標準モジュールであるsubprocessの使い方を簡単に説明しました
コメント