python - 当使用 Autokey 按下某个键时,如何停止 while 循环?
问题描述
我正在尝试在 Linux Mint 上使用Autokey(不是常规 Python)编写一个小脚本,该脚本按下一个键并在按下另一个特定键后停止,但在按下此特定键后我无法让它停止循环。
我得到了循环工作,但我不能让它停止。
import time
a = True
b = keyboard.press_key('s')
keyboard.release_key('s')
while a:
keyboard.send_key("a", repeat=5)
time.sleep(2)
if b:
break
所以这会无限期地输出字母“a”,在我按“s”后它不会停止,我不知道我做错了什么
我阅读了有关 while 函数和 break 的信息,但我发现的所有示例都是在达到某个数字后循环停止,这些数字示例与我尝试使用这种脚本实现的不同,所以我希望有人可以帮助我弄清楚这一点。
解决方案
您将不得不为此使用键盘模块,因为press_key
用于“按下”不检测的键。
如果你还没有安装键盘,你可以通过 cmd 来安装,
pip install keyboard
之后您可以在python中添加代码如下,按“q”将打印“a”5次,按“s”将停止程序。
import keyboard
while True:
if keyboard.is_pressed('q'): # pressing q will print a 5 times
for i in range(5):
print("a")
break
elif keyboard.is_pressed('s'): # pressing s will stop the program
break
推荐阅读
- apache-kafka - Kafka Consumer 分发未按预期工作
- javascript - 如何使用 javascript 或 jquery 比较两个时间选择器
- c# - 猪拉丁语翻译中的问题
- android - 在 android 中检测和墙壁并更改墙壁颜色,类似于颜色快照和亚洲涂料应用程序
- intellij-idea - 有没有办法“完成当前语句”和“退出当前方法”?
- unit-testing - Curl:单行测试 http/2 支持
- python - 这个 TensorFlow 代码哪里出错了?
- c# - C# 我的表单对象在应用程序运行一段时间后无法正常工作
- sql - 查找最近的到期日期
- python - .bytes 文件统一的目的是什么?