首页 > 解决方案 > 按住某个键时如何继续打印字符串

问题描述

import keyboard

while True:
    if keyboard.is_pressed('b'):
        print('a')
        break

这是我按 b 时打印的代码。但我希望它在我持有 b 时继续打印 a 我该怎么做。

标签: pythonprintingkeyboard

解决方案


我主要将此模块pynput用于鼠标事件,但它也处理键盘事件。

这是链接: https ://pypi.org/project/pynput/

该库允许您控制和监视输入设备。目前,支持鼠标和键盘输入和监控。

页面中间的键盘说明:

from pynput.keyboard import Key, Controller
keyboard = Controller()

或更恰当地使用pynput.keyboard.Listener如下:

from pynput import keyboard

下面的代码检测多个输入。您必须针对原始问题中给出的示例a对其进行修改。b

from pynput import keyboard

def on_press(key):
    try:
        print('alphanumeric key {0} pressed'.format(
            key.char))
    except AttributeError:
        print('special key {0} pressed'.format(
            key))

def on_release(key):
    print('{0} released'.format(
        key))
    if key == keyboard.Key.esc:
        # Stop listener
        return False

# Collect events until released
with keyboard.Listener(
        on_press=on_press,
        on_release=on_release) as listener:
    listener.join()

# ...or, in a non-blocking fashion:
listener = keyboard.Listener(
    on_press=on_press,
    on_release=on_release)
listener.start()

谢谢你。


推荐阅读