繁体   English   中英

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

[英]How do I abort reading a user's input in 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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM