簡體   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