iT邦幫忙

0

python 想做一個 30 秒 後 自動執行的程式

想做一個 30 秒 後 自動執行的程式
這30 秒可以自己決定按Y/N 離開或繼續
要怎麼寫?
import getpass
while True :
#DO SOMETHING
res = getpass.getpass('在本視窗按 y 後 Enter 繼續執行,\n(不想繼續執行 q Enter 離開)')
if('Y' in res.upper()):
print("繼續執行")
continue;
else:
print("結束程式")
break;

呃,要是人不在電腦前,那YN畫面不就一直跑不停?Windows放在啟動下跑,Linux放在crontab裡,程式開始就一直跑while不停,上次按YN的時間記錄下來,只要現在的時間減上次的時間大於30秒就跳窗口,就醬
對這個程式就是要可以人為介入 發生錯誤就會停那邊等你人為排除 排除好按 Y繼續執行 排除不了按N結束執行 所以會 一直 YN 跑不停

2 個回答

1
pepro
iT邦新手 5 級 ‧ 2021-03-23 15:23:07
最佳解答

我想用Thread可以輕鬆解決妳的問題!


import time
import sys
import threading

answer = 'N'

def ask():
    global answer
    while(True):
        _answer = input('請輸入是否要執行? Y/N:')  
        _answer = _answer.upper()
        if _answer in ['Y','N']:
            break
    answer = _answer
    
def fun():
    print('im done.')
    
def executer():
    global answer
    for i in range(30):
        print(answer)
        if answer == 'Y':
            fun()
            break
        time.sleep(1)

n=threading.Thread(target=ask)
i=threading.Thread(target=executer)
i.start()
n.start()

水拉 感謝你/images/emoticon/emoticon02.gif

samshum iT邦新手 5 級 ‧ 2021-03-28 01:42:49 檢舉

看到我以前剛學python和linux的模樣,哈哈

1
souda
iT邦研究生 2 級 ‧ 2021-03-23 17:04:51

如果是放linux 可以用xx.sh crontab做
如果是放windows 可以用xx.bat 工作管理員做

以上供您參考!

謝謝回答 不過 我是要程式上解法 不是 系統的
因為不見得有 系統權限 可以設 crontab

souda iT邦研究生 2 級 ‧ 2021-03-26 19:31:20 檢舉

crontab都是綁登入的該帳號的彼此看不到的.

我要發表回答

立即登入回答