2017-03-15 5 views
1

だが、私はこのスクリプトを持っているとしましょう:Python、途中でスクリプトを停止するには?

import time 

def menu(): 
    n = raw_input("What do you want the script to do: ").lower() 
    if n == "run": 
     r = run() 
    elif n == "exit": 
     exit() 
    else: 
     print("Unknown command") 
    print("Result: " + r)  

def run(): 
    t = 0 
    while t < 60: 
     print("This script is doing some stuff") 
     time.sleep(1) 
     t = t + 1 
    return "Some kind of result" 

if __name__ == '__main__': 
    print("Starting the most useless script ever") 
    while True: 
     menu() 

にはどうすればを「このスクリプトは、いくつかのものをやっている」を印刷中に、スクリプトを停止し、メニュー()に戻すことができますか?私は完全にプログラムを終了したくないだけで、メニューに戻る。

+0

持たなければならないあなたが対話的にそれを停止したいわけですか? – TigerhawkT3

答えて

1

がこの沿って何かについてどう:

while True: 
    try: 
     # whatever logic 
     pass 
    except(KeyboardInterrupt): 
     print 'Ctrl-C was pressed... interupt while loop.' 
     break 
print 'program still running' 
0

あなたが探していることは、信号のライブラリがあり、あなたがする必要がありますすべては、それを処理するための関数を作成しています。

import signal 

def a(sig_num, stack_frame): 
    print("WORKS") 

signal.signal(signal.SIGINT,a) 

機能aは2つの位置引数

+0

Ctrl + Cキーを押すとシグナル割り込み、別名信号.SIGINTがトリガーされます – chbchb55

関連する問題