見出し画像

定期実行(ローカル環境)について学ぶ

こんばんは、アリカです。

本日は定期実行(ローカル環境)について勉強したいと思います。

定期実行とは何もしていないのに決まった時間にプログラムが実行されるといった感じです。

プログラミング初学者の方は一度は憧れる内容ではないでしょうか。

またローカル環境とはパソコンを起動していないと動かない環境のことを言います。
これと対になるのがリモート環境です。
リモート環境の場合はパソコンを起動していなくてもプログラムが動作します。

私自身、最終的にはリモート環境でプログラムを動かしたいと考えていますが、まずはローカル環境で動かす方法について学びたいと思います。


①プログラムで時間を指定する方法

まずはプログラムで時間を指定する方法について説明していきます。
使用する言語はPythonとなります。

pipでscheduleをインストールします。

pip install schedule

インストールができたらコードを書いていきます。

緑・・・必要なモジュールのインポート
青・・・動作を確認するためのコード
赤・・・定期実行をするためのコード

青い部分は何でも構いません。(今回は現在の時刻を表示するフォームにしました。)
今回共通して必要になるのは、緑の部分のimport schedule,import time赤い部分すべて(時間は変えてください)になります。

定期実行のコードを説明しておくと、While Trueは無限ループを表し、この無限ループのschedule.run_pending()でschedule.every().day.at("19:17").do(main)を呼び出しています。
つまりschedule.every().day.at("19:17").do(main)が常に呼び出されており、指定した時間のみにmainが実行されるといった仕組みになっています。

※注意点としてはプログラムを常に実行させておく必要があります。

コピペ用

import tkinter
import requests
from tkinter import ttk
import schedule
import time
import datetime

def main():
    root=tkinter.Tk()
    root.geometry("500x200")
    dt_now = datetime.datetime.now()
    label=tkinter.Label(root,text=dt_now)
    label.pack()
    root.mainloop()
    
schedule.every().day.at("19:17").do(main)

while True:
    schedule.run_pending()
    time.sleep(5)

Pythonを使った業務効率化例を紹介しています。
業務効率化に興味がある方はこちらの動画もご確認ください!


②タスクスケジューラを使用する方法(Windows)

次にタスクスケジューラを利用した定期実行を説明します。
タスクスケジューラを検索して起動します。

右側に基本タスクの作成があるのでクリックします。

名前を付けて次に進みます。

タスクを開始する頻度を選択します。

時間を指定します。
5分くらいは開けた方がいいそうです。(1-2分だと起動しないかもしれません。)

プログラムの開始で次に進みます。

場所の指定をします。

①Pythonが実行されている場所(python.exeがある場所)を絶対パスで指定します。
②実行したいPythonファイルを絶対パスで指定します。

例としてはこんな感じです。

C:\Users\arika\anaconda3\python
C:\Users\arika\Desktop\test\test.py

最後に完了を押して終了です。

※初期設定でここにチェックが入っているので注意してください。

これで①と同様に指定した時間にプログラムを実行することができました。タスクスケジューラが使える場合はこちらの方がいいと思います :-)

最後に

本日はここまでとなります。

とりあえずローカル環境で動かすことはできましたが、リモート環境で動かせた方が理想的ではあります。今後実装していきたいと思います。

最後まで読んで頂きありがとうございました。
スキ・フォロー・コメントお待ちしております。

この記事が参加している募集

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