見出し画像

Pythonで書いたプログラムをバッチファイルで楽に実行する方法[Windows]

こんにちは。今回はpythonで書いたプログラムをバッチファイルで簡単に実行する方法を共有したいと思います。私はこの方法が無かったら多分卒論書き終わらなかったのでそこそこ役に立つのかな?と思って書きます。まあ、自分用のメモとしての側面もありますが。

使用するPython プログラム

今回使用するコードは以下の通りです。
動作としては、X,Y,Zを入力して総和を出力するプログラムです。また、今回はsysというライブラリを使用します。標準ライブラリなので、pipでインストールする必要はありません。

import sys


if len(sys.argv) != 4:
    print("Usage: input X,Y,Z")
    sys.exit(1)

X = int(sys.argv[1])
Y= int(sys.argv[2])
Z = int(sys.argv[3])

calc=X+Y+Z

print(calc)
    


上記のプログラムを「main.py」というファイル名で保存してください。


このプログラムを実行するときはコマンドラインを開いてください。Pythonプログラムがあるディレクトリで以下のように入力します。

python main.py 1 2 3 


pythonのバージョンによって"python"部分が"python3"などに変化すると思いますが、ご自身が使用している環境に合った方法で実行してください。私の実機では"python"で問題ありませんでしたが、研究室の研究用サーバーでは"python3"ではないと動きませんでした。なんでだろ?

出力結果として6が出力されていれば問題ありません。次に、プログラムの出力がテキストファイルになるように変更します。といっても、コマンドを以下の通りに少し変えるだけです。

python main.py 1 2 3 > ./a.txt

これを実行されてa.txtが出力されていれば問題ありません。


バッチファイルで実行する。

バッチファイルでpythonを実行していきたいと思います。バッチファイルとはWindowsのコマンドラインを複数行書いてあるファイルのことを指します。

例えば上記のプログラムをX, Y, Z の条件を変えて100パターンのプログラムを実行したいとします。この場合、コマンドラインに一回ごとに実行して結果を出力して、また実行してを繰り返すのは大変です。また、上記のプログラムよりも大きく一度の処理に時間がかかる場合、さらに大変になります。この時に、バッチファイルが役に立ちます。

以下に今回使用するバッチファイルの例を挙げます。

python main.py 1 2 3 > ./a.txt
python main.py 2 6 0 > ./b.txt
python main.py 3 0 1 > ./c.txt
python main.py 4 -1 2 > ./d.txt
python main.py 5 9 4 > ./e.txt


ファイル名を"run.bat"で保存してください。


次に先ほど実行していたコマンドラインで以下のように実行します。

./run.bat

実行すると5つのファイルが出力されたら問題ありません。このように実行したいコマンドを事前に書いておき、一気に実行することができます。これで楽になります。


最後に

私の研究の話になりますが、私がシミュレーションを行っていたプログラムは、一回実行が完了するのに約30分かかりました。また、実行しなくてはいけない回数は最低でも1セット125回必要でした。実際は条件を変えたりしていたのでさらに実行しています。これをいちいちプログラムが終わった度に手作業で実行するのはしんどいです。ですので、バッチファイルを書いて実行後プログラムが終了するまで放置で来たのは非常に楽でした。おすすめです。

また、このバッチファイルの書き方は必要最低限だけ書いて実行するようにしていますので、人によっては(というより多くの人にとっては)書き方が異なると思います。詳しくはご自身で調べて下さい。今回は紹介だけです。

この記事が気に入ったらサポートをしてみませんか?