如何在Python 3.x中中止读取用户的输入?

时间:2015-09-11 15:12:50

标签: python multithreading python-3.x user-input

我有一个监视用户输入的线程,如下所示:

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

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

1 个答案:

答案 0 :(得分:0)

如果没有更多的代码,很难确切地说出出了什么问题,但作为一个简单的解决方案,你可以宁可exit()这是一个内置的python。这应该可靠地终止应用程序,{{3} }

来自wim的评论:

您可以使用sys.exit()模块注册清理处理程序

import atexit

def cleanup():
   pass
   # TODO cleanup

atexit.register(cleanup)