【Python】指定した時間でプログラムの実行を終わらす方法

やりたいこと

タイトル通り、指定した時間でプログラムを終わらしたい。

例えば実行して5秒でプログラムが終わる。みたいな。

実現方法

一言でいうと、「whileで何秒か経ったらループを抜けてsys.exit()で終わらせられる。」

コードと実行結果

コード

import time
from datetime import datetime, timedelta
import sys

def test1():
    starttime = datetime.now()
    #シミュレーション時間を5秒に設定
    endtime = starttime + timedelta( seconds = 5)
    print("Simulation start time:",starttime.strftime("%Y/%m/%d %H:%M:%S"))

    #シミュレーション時間をカウント
    while endtime > datetime.now():
        now = datetime.now()
        print("Simulation time:",now.strftime("%Y/%m/%d %H:%M:%S"))
        time.sleep(1)

    #シミュレーション終了
    print("Simulation end date:",endtime.strftime("%Y/%m/%d %H:%M:%S"))
    print("##############simulation END##############")
    sys.exit()

def main():
    print("##############simulation START##############")
    test1()
    
if __name__ == "__main__":
    main()

実行結果

> py sample.py
##############simulation START##############
Simulation start time: 2022/05/11 21:14:03
Simulation time: 2022/05/11 21:14:03
Simulation time: 2022/05/11 21:14:04
Simulation time: 2022/05/11 21:14:05
Simulation time: 2022/05/11 21:14:06
Simulation time: 2022/05/11 21:14:07
Simulation end date: 2022/05/11 21:14:08
##############simulation END##############

よし。

終わりー。

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