我正在做一个python程序,它在工作时可以从终端获得输入。
例如,当运行一些进程时,他可以从终端命令中进行异步控制,并且他不会因为用户的输入而停止。
如何在python中做到这一点?
你不能使用 asyncio
模块与 input()
因为 input()
将阻止事件循环。要做你想做的事,你应该使用 multithreading
模块代替。
看看这个例子。
import time
from threading import Thread
def another_thread():
while True:
time.sleep(2)
print("Working...\n")
def main_thread():
while True:
x = input("Press a key: \n")
if x == "q":
break
if __name__ == '__main__':
# create another Thread object
# daemon means that it will stop if the Main Thread stops
th = Thread(target=another_thread, daemon=True)
th.start() # start the side Thread
main_thread() # start main logic