python实时检测键盘输入函数

在嵌入式、尤其是机器人的python编程中,经常需要实时检测用户的键盘输入来随时控制机器人,这段代码可以帮助我们提取用户输入的字符,并在按下键盘的时候作出反应。

import sys
import tty
import termios

def readchar():
    fd = sys.stdin.fileno()
    old_settings = termios.tcgetattr(fd)
    try:
        tty.setraw(sys.stdin.fileno())
        ch = sys.stdin.read(1)
    finally:
        termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
    return ch

def readkey(getchar_fn=None):
    getchar = getchar_fn or readchar
    c1 = getchar()
    if ord(c1) != 0x1b:
        return c1
    c2 = getchar()
    if ord(c2) != 0x5b:
        return c1
    c3 = getchar()
    return chr(0x10 + ord(c3) - 65)

while True:
    key=readkey()
    if key=='w':
        #go_forward()
    if key=='a':
        #go_back()
    if key=='s':
        #go_left()
    if key=='d':
    	#go_right()
    if key=='q':
    	break

key = readkey()即可使用

引用\[1\]和\[2\]提供了两种使用pynput库来检测键盘输入的方法。第一种方法是通过pynput.keyboard.Listener实现,代码中使用了on_press和on_release两个回调函数来处理按键事件。当按下空格键时,flag变量会被设置为True,表示需要暂停程序并等待用户输入。第二种方法是通过keyboard.on_press实现,代码中使用了key_press函数来处理按键事件。同样地,当按下空格键时,flag变量会被设置为True。这两种方法都可以实现键盘输入检测,具体选择哪种方法取决于个人的需求和偏好。引用\[3\]提供了另一种方式,使用keyboard.hook方法来实现键盘输入检测。在代码中,定义了一个abc函数来处理按键事件,当按下空格键时,flag变量会被设置为True。这种方法相当于在进程中埋了一个“钩子”,在按下对应按键时触发指定的函数。总的来说,以上三种方法都可以用来检测键盘输入,具体选择哪种方法取决于个人的需求和偏好。 #### 引用[.reference_title] - *1* *2* *3* [Python: Windows 系统中监测键盘输入的两种方法](https://blog.csdn.net/Zhang_0702_China/article/details/123756412)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值