2015-09-11 47 views
2

我有监视用户的输入,看起来像这样一个主题:如何在Python 3.x中中止用户的输入?

def keyboard_monitor(temp): #temp is sys.stdin 
global flag_exit 

while True: 
    keyin = temp.readline().rstrip().lower() 
    if keyin == "exit": 
     flag_exit = True 
     print("Stopping...") 

    if flag_exit == True: 
     break 

如果键入退出标志的设置正确,所有其他线程终止。如果我的另一个线程设置标志,则此线程拒绝完成,因为它挂在用户输入上。我必须输入一些东西才能完成。如何更改此代码,以便在外部设置标志时程序结束?

+0

开始。 – wim

+0

你可以试试'temp.close()'。不知道可能会有什么影响。 – meuh

+0

它只需要跨平台或Unix或Windows? – dawg

回答

0

它很难说究竟是怎么了?没有更多的代码,但作为一个简单的解决方案,你可以比较exit()这是建在一个蟒蛇。这应该可靠地终止应用程序,也sys.exit()

从WIM的评论:

可以使用atexit模块注册清理具有看看`select`模块处理

import atexit 

def cleanup(): 
    pass 
    # TODO cleanup 

atexit.register(cleanup) 
+0

当给出一个链接的答案时,通常会优先将解决方案的关键部分直接复制到答案 – wnnmaw

+0

谢谢,我会记得这样做 –

+0

我必须做一些房子保持(关闭文件句柄等),所以我不能只是致电退出。 –

相关问题