見習いプログラマの学習日記

Pythonプログラム の学習記録

Pythonでシェルスクリプトを実行

外部マクロをPythonのサブプロセスで実行した時のメモを残します。
Pythonで外部スクリプトを実行する際、「subscript.call()」関数を用いました。
ここでは、外部マクロをマルチプロセス で動かしたかったので「Process」クラスを利用しました。

from multiprocessing import Process
import subprocess


def f1():
    script = subprocess.call(['bash', './shellscripts/while_1.bash'])
    #print(script)
    print("END")


if __name__ == '__main__':
    p = Process(target=f1)
    p.start()
    print("Process starts...")
    

subprocess.call()で実行しているwhile_1.bashは2秒おきに0~9の数字をecho文で出力する処理です。
以下のように、Pythonの__main__部分の処理後にsubprocessが始まります。

Process starts...
0
1
2
3
4
5
6
7
8
9
END


参考サイト
Pythonの並列処理(マルチプロセス)の基本と使い方