PythonでLinuxのシェルコマンドまたはスクリプトを実行する方法を紹介します。
Shell Command実行(1): os.system
os.system()
に渡されたコマンドを実行します。結果は、コンソールに出力されます。
import os
os.system('ls -l')
Output:
/usr/bin/python3.8 /home/js/IdeaProjects/python-ex/run_shell.py
total 28
-rw-rw-r-- 1 js js 255 7월 4 16:01 comma.py
-rw-rw-r-- 1 js js 124 7월 3 16:14 file.log
シェルコマンド実行(2): os.popen
os.popen()
に渡されたコマンドを実行します。結果はコンソールに出力されませんが、streamから読み取ることができます。
import os
stream = os.popen('ls -l')
output = stream.read()
print(output)
Output:
/usr/bin/python3.8 /home/js/IdeaProjects/python-ex/run_shell.py
total 28
-rw-rw-r-- 1 js js 255 7월 4 16:01 comma.py
-rw-rw-r-- 1 js js 124 7월 3 16:14 file.log
...
シェルコマンドの実行(3): subprocess
subprocess
的に次のようにシェルコマンドを実行することができます。結果は、コンソールに出力されます。
import subprocess
subprocess.run(["ls", "-l"])
Output:
/usr/bin/python3.8 /home/js/IdeaProjects/python-ex/run_shell.py
total 28
-rw-rw-r-- 1 js js 255 7월 4 16:01 comma.py
-rw-rw-r-- 1 js js 124 7월 3 16:14 file.log
...
実行結果を返す
次のコードは、結果をコンソールに出力せずに、オブジェクトに返されます。 result.stdout
この結果の文字列です。
import subprocess
result = subprocess.run(["ls", "-l"], stdout=subprocess.PIPE, text=True)
print(result.stdout)
Output:
/usr/bin/python3.8 /home/js/IdeaProjects/python-ex/run_shell.py
total 28
-rw-rw-r-- 1 js js 255 7월 4 16:01 comma.py
-rw-rw-r-- 1 js js 124 7월 3 16:14 file.log
...
コンソールに結果を出力しないように設定
stdoutを subprocess.DEVNULL
に設定すると、Outputは出力されません。
import subprocess
subprocess.run(["ls", "-l"], stdout=subprocess.DEVNULL)
Shell Scriptの実行
次のように引数としてシェルスクリプトファイルのパスとargumentsが渡されると、スクリプトが実行されます。
import subprocess
subprocess.run(["/tmp/test.sh", "arguments"], shell=True)
Output:
/usr/bin/python3.8 /home/js/IdeaProjects/python-ex/run_shell.py
total 28
-rw-rw-r-- 1 js js 255 7월 4 16:01 comma.py
-rw-rw-r-- 1 js js 124 7월 3 16:14 file.log
...
# /tmp/test.sh
echo "Hello, Python"
Related Posts
- Python - JSONファイル読み書きする方法
- Python - 平方根の計算方法(Square Root)
- Python - 文字列 特定文字 削除
- Python lower() 文字列を小文字に変換
- Python upper() 文字列を大文字に変換
- Python - ファイル数の確認
- Python - イテレーションステートメントでセット巡回
- Python - 文字列位置(Index)を探す
- Python - ファイルを読み込み、1行ずつリストに保存する
- UbuntuにPython 3.10をインストールする方法
- Python - 関数の定義と呼び出し方法
- Python - ディクショナリーの整理と例
- Python - ディクショナリーの初期化、4つの方法
- Python - XML生成とファイルの保存
- Python - XML解析、タグ、または要素別に読み取る
- Python - 文字列をリストに変換する方法
- Python - 'and'と'&'の違い
- Python - 文字列 切り取り(substring、slicing)
- Python - 'is'と'=='の違い
- PythonでShell Command、スクリプトの実行
- Python - 数字3桁ごとにコンマ(,)を入れる方法
- Python - 辞書をリストに変換
- Python - 文字列から数字のみを抽出する方法
- Python - zipで二つのリスト縛り
- Python - リストを文字列に変換する
- Python - 辞書にキーがあることを確認する
- Python - ファイル、フォルダが存在確認
- Python - floatをintに変更する方法
- Python - リストの最初、最後の 要素を取得する方法
- Python - bytesをStringに変換する方法
- Python - Stringをbytesに変換する方法
- Python - 辞書の重複排除方法
- Python - 二つのリスト一つ併合
- Python - リストの重複排除、4つの方法
- Python - listの先頭にデータを追加する