Python - よく使うモジュール - subprocess コマンド実行

 クラウディア
1. 概要
2. call

1. 概要

 わたしの理解としては・・・、「perl」の「system」みたいなもんだと思っています。  本項は、下記の記事を参考にさせていただきました。
python 上で unix コマンドを実行する - Qiita」
「subprocess --- サブプロセス管理 — Python 3.8.1 ドキュメント」
「【python】os.systemはもう古い!?subprocessでコマンドを実行しよう! | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト

2. call

 最も単純な形式らしいのですが・・・。

import subprocess

実行結果 = subprocess.call(コマンド文字列)
 という形式らしい。  実行結果が「0」であれば正常らしい。  下記のようなソースを書いて

result = subprocess.call("whoami")
print(('[whoami]     実行結果['+ str(result) +']'))
print('-------------------------')

result = subprocess.call("echo hello")
print(('[echo hello] 実行結果['+ str(result) +']'))
 実行すると
sh: /usr/local/bin/python: not found
 てなことになって、引数をつけるとエラーになっちゃいます。  どうも、1つのコマンドとして解釈するようで・・・。  引数がある場合は、下記のように書きます。

import subprocess

実行結果 = subprocess.call([コマンド文字列, 引数1, 引数2 ...])
 ソースをこう書いて

result = subprocess.call(["echo", "hello"])
print('実行結果['+ str(result) +']')
 実行すると
sh: /usr/local/bin/python: not found
 思った通りの結果が得られました。
 
 
カウンタバックグラウンド