見出し画像

簡単にPythonファイルを実行(batファイル作成)

前回、ファイルの自動実行について投稿しました。自動的に実行したいプログラムもあれば、ここぞという場面で随時実行したいプログラムもあります。そんな時に便利なのがbatファイルです。


おさらい(pyファイルの実行方法)

pyファイルは、ターミナルで行います。windowであればコマンドプロンプトやPowerShellが該当します。コマンドプロンプトは、windows+R「ファイル名を指定して実行」で「cmd」と入力し実行すると開きます。
VScodeのメニューバーの中にも、「ターミナル(Terminal)」があり、「新しいターミナル」を選択するとVScode上にターミナル画面を開くことができます。

コマンドプロンプトを開くと、「C:\Users\ユーザ名>」と表示された黒い画面が開きます。これは現在のディレクトリ(カレントディレクトリ)を表しており、pyファイルを実行するためには、pyファイルが存在するディレクトリに移動する必要があります。

まずは、pyファイルが保存されているフォルダのアドレスバー上で右クリックし、「アドレスをコピー」選択しコピーしておきます。
次に、コマンドプロンプト上で「cd コピーしたアドレス」を入力し実行するとディレクトリを変更することができます。
 →カレントディレクトリの表示も変更されます!

この状態で、「py」+ pyファイル名と入力しEnterキーを押すとプログラムが実行されます。

batファイルとは?

バッチファイルとは、コマンドを並べたテキストファイルです。

pyファイルを実行するために、コマンドプロンプトを開いて①ディレクトリを変更し、②pyファイルを実行する というステップが必要です。
毎回①と②を入力するのは面倒なので、最初からこのコマンドをまとめたbatファイルを作成しておけば、batファイルをクリックするだけで①→②の処理が行われます。

batファイルを作成・実行してみよう!

サンプルコード

import datetime
#現在の日時を取得
today = datetime.datetime.now()
#日付・時刻の表記方法を設定
date = today.strftime('%Y年%m月%d日')
time = today.strftime('%H時%M分')
#曜日番号を取得し、辞書を用いて漢字表記の曜日に変換
wd = today.weekday()
dic_wd = {0: '月', 1: '火', 2: '水', 3: '木', 4: '金', 5: '土', 6: '日'}
weekday = dic_wd[wd]
#日付の引き算
start = datetime.date(2001, 1, 1)
end = datetime.date(today.year, today.month, today.day)
delta = end - start
#結果の出力
print(f'本日は{date} {weekday}曜日です。ただ今の時刻は{time}です。')
print(f'21世紀が始まって{delta.days + 1}日目です。')

サンプルコードとして、実行した日時を取得し、曜日や21世紀になってから何日目なのかを返してくれるプログラムです。startを誕生日や記念日にすると何かに役立つかもしれません(笑)。
上記を、「sample.py」という名前で保存しておきます。

batファイル作成

batファイルはテキストファイルなので、「メモ帳」から作成できます。記述する内容は、上記の①と②の2行だけです。実行終了すると、コマンドプロンプト自体は自動的に閉じられてしまいます。
今回のコードは、print文で文字列を出力するようになっているので、3行目に「pause」を追加すればコマンドプロンプトを閉じずに残すことができます。

cd C:\Users\ユーザ名\*****\***\notepy sample.py
pause

あとは、このテキストファイルをbatファイルとして保存します。このとき、拡張子を「.bat」にする点とエンコードを「ANSI」に変更する点に注意してください。ここでは、「sample.bat」と名前を付けて保存しています。

保存すると以下のようなアイコンが作られます。

実行

あとは他のアプリケーションと同じようにアイコンをクリックするだけで実行できます。

batファイル上に記述したコマンドが順番に実行されているのが分かります。そして、肝心のpyファイルも実行されて日時や曜日、2001年1月1日からの経過日数も表示されています。
このように、pyファイルを簡単に呼び出して実行することができます。よく使う処理をbatファイルにまとめておくと便利です。


今回はコマンドプロンプトからpyファイルを実行する過程をbatファイルにまとめる方法を書きましたが、コマンドプロンプトはpyファイルの実行以外にも使用できます。
例えば、ファイルをコピーしてバックアップを作成したりすることも出来るので簡単な操作方法を知っておくだけでも業務の効率化に繋がります。興味がある方は、ぜひ試してみてください!

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