Linux下Python如何用键盘控制程序暂停和继续?

心靈之曲

心靈之曲

2025-02-27

442人浏览

原创

linux下python如何用键盘控制程序暂停和继续?

Linux环境下Python键盘监听与程序控制

本文介绍如何在Linux系统下,使用Python编写程序监听键盘事件,例如:控制一个无限循环程序,通过按下Enter键暂停和继续程序执行。 我们将利用多线程机制实现此功能。

核心思想是使用多线程:主线程负责主要任务,一个独立线程专门监听键盘输入。通过共享变量(标志位)协调两个线程的工作。

代码中,stop变量作为标志位,初始值为False(程序运行)。watch_dog函数作为监听线程,持续等待键盘输入。一旦检测到Enter键按下,则改变stop变量的值,从而控制主循环的执行状态。

Python 3.14.2
Python 3.14.2

Python 3.14.2是Python编程语言在2025年12月5日发布的稳定版本,属于3.14系列的第二个维护更新。该版本包含了18项修复,重点解决了多进程、数据类及正则表达式等模块的回归问题,并修复了CVE-2025-12084等安全漏洞。此版本标志着自由线程模式(移除GIL)正式获得官方支持,是Python发展的重要里程碑。

下载

以下为Python代码实现:

<code class="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)  # 模拟任务</code>

代码首先定义全局变量stop控制程序暂停状态。watch_dog函数使用input()监听键盘输入,按下Enter键则反转stop值。主线程使用while循环模拟主要任务,根据stop值决定是否暂停。ThreadPoolExecutor创建并管理监听线程,确保主线程和监听线程并发运行。 主线程和子线程通过共享变量stop同步协调。 这种方法有效地实现了键盘输入监听和程序运行状态控制。

Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!

相关专题

更多
while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.25

245

5

全局变量怎么定义
全局变量怎么定义

本专题整合了全局变量相关内容,阅读专题下面的文章了解更多详细内容。

2025.09.18

1024

12

python 全局变量
python 全局变量

本专题整合了python中全局变量定义相关教程,阅读专题下面的文章了解更多详细内容。

2025.09.18

563

13

c++ 全局变量
c++ 全局变量

本专题整合了c++全局变量的使用、定义、作用域等等内容,阅读专题下面的文章了解更多详细内容。

2026.03.17

76

17

线程和进程的区别
线程和进程的区别

线程和进程的区别:线程是进程的一部分,用于实现并发和并行操作,而线程共享进程的资源,通信更方便快捷,切换开销较小。本专题为大家提供线程和进程区别相关的各种文章、以及下载和课程。

2023.08.10

2039

6

Python 多线程与异步编程实战
Python 多线程与异步编程实战

本专题系统讲解 Python 多线程与异步编程的核心概念与实战技巧,包括 threading 模块基础、线程同步机制、GIL 原理、asyncio 异步任务管理、协程与事件循环、任务调度与异常处理。通过实战示例,帮助学习者掌握 如何构建高性能、多任务并发的 Python 应用。

2025.12.24

618

20

java多线程相关教程合集
java多线程相关教程合集

本专题整合了java多线程相关教程,阅读专题下面的文章了解更多详细内容。

2026.01.21

126

30

C++多线程相关合集
C++多线程相关合集

本专题整合了C++多线程相关教程,阅读专题下面的的文章了解更多详细内容。

2026.01.21

315

24

C# 多线程与异步编程
C# 多线程与异步编程

本专题深入讲解 C# 中多线程与异步编程的核心概念与实战技巧,包括线程池管理、Task 类的使用、async/await 异步编程模式、并发控制与线程同步、死锁与竞态条件的解决方案。通过实际项目,帮助开发者掌握 如何在 C# 中构建高并发、低延迟的异步系统,提升应用性能和响应速度。

2026.02.06

202

20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

Apifox下载与安装手册
Apifox下载与安装手册

共0课时 | 0人学习

安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 125人学习