如何在 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

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

如果没有更多的代码,很难确切地告诉您哪里出了问题,但是作为一个简单的解决方案,您可以选择exit(),这是python内置的。这应该可以可靠地终止应用程序,还有sys.exit()

摘自wim的注释:

你可以使用atexit模块来注册清理处理程序

import atexit
def cleanup():
   pass
   # TODO cleanup
atexit.register(cleanup)

相关内容

  • 没有找到相关文章

最新更新