scheduleで同階層にある、main.pyのif __name__ ==”__main__”:を実行させたい
scheduleを使用して同じ階層にある main.py の if __name__ == "__main__": を実行させるには、subprocess モジュールを使って新しいプロセスを開始する方法があります。以下はその例です。
python
import schedule import subprocess import time def run_main(): # subprocessモジュールを使用してmain.pyを新しいプロセスとして実行 subprocess.run(["python", "main.py"]) # 例: 毎日8時30分にジョブを実行 schedule.every().day.at("08:30").do(run_main) while True: # スケジュールに登録されているジョブを実行 schedule.run_pending() # 1分ごとに確認 time.sleep(60)
この例では、run_main 関数を定義し、subprocess.run(["python", "main.py"]) を使って新しいプロセスとして main.py を実行しています。そして、schedule.every().day.at("08:30").do(run_main) で毎日8時30分にこの run_main 関数を実行するようにスケジュールしています。
main.py の内容は subprocess.run(["python", "main.py"]) によって新しいプロセスとして実行されるため、main.py 内で定義された if __name__ == "__main__": が正しく動作します。

ディスカッション
コメント一覧
まだ、コメントがありません