本文介绍如何在Linux系统下,使用Python编写程序监听键盘事件,例如:控制一个无限循环程序,通过按下Enter键暂停和继续程序执行。 我们将利用多线程机制实现此功能。
核心思想是使用多线程:主线程负责主要任务,一个独立线程专门监听键盘输入。通过共享变量(标志位)协调两个线程的工作。
代码中,stop变量作为标志位,初始值为False(程序运行)。watch_dog函数作为监听线程,持续等待键盘输入。一旦检测到Enter键按下,则改变stop变量的值,从而控制主循环的执行状态。
以下为Python代码实现:
import time
from concurrent.futures.thread import ThreadPoolExecutor
stop = False
def watch_dog():
global stop
while True:
input() # 等待键盘输入
stop = not stop # 切换stop状态
with ThreadPoolExecutor(max_workers=1, thread_name_prefix='keyboard-watcher-') as tpe:
tpe.submit(watch_dog) # 启动监听线程
while True:
if stop:
print('程序暂停...')
time.sleep(1)
continue # 暂停
print('程序运行中...')
time.sleep(1) # 模拟任务
代码首先定义全局变量stop控制程序暂停状态。watch_dog函数使用input()监听键盘输入,按下Enter键则反转stop值。主线程使用while循环模拟主要任务,根据stop值决定是否暂停。ThreadPoolExecutor创建并管理监听线程,确保主线程和监听线程并发运行。 主线程和子线程通过共享变量stop同步协调。 这种方法有效地实现了键盘输入监听和程序运行状态控制。
以上就是Linux下Python如何用键盘控制程序暂停和继续?的详细内容,更多请关注知识资源分享宝库其它相关文章!
版权声明
本站内容来源于互联网搬运,
仅限用于小范围内传播学习,请在下载后24小时内删除,
如果有侵权内容、不妥之处,请第一时间联系我们删除。敬请谅解!
E-mail:dpw1001@163.com
发表评论