Python二维码阅读器。通过键盘专门收听输入()

2024-05-17 04:34:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望我的python脚本只听QR码读取器,它被检测为键盘。 我不想让键盘写入控制台或其他地方。在Linux上,只有python脚本应该侦听该键盘。可能吗?有没有图书馆或udev规则可以阻止这样的事情

while True:
   qr_code = input()
   logging.info(qr_code)

我还尝试了pythonevdev。其中,我只能使用dev.grab_context():绑定到设备。它工作并接收单键事件,但我没有映射。所以input()对我来说是最简单的方法

    qr_device_path = None
    qr_device_name = "SM SM-2D PRODUCT HID KBW"
    qr_device_phys = None

    devices = [evdev.InputDevice(path) for path in evdev.list_devices()]
    # QR Code Reader name: SM SM-2D PRODUCT HID KBW
    for device in devices:
        print(device.path, device.name, device.phys)
        if(device.name == "SM SM-2D PRODUCT HID KBW"):
            logging.info("found qr code reader")
            qr_device_path = device.path
            qr_device_phys = device.phys

    if(qr_device_path):
        dev = InputDevice(qr_device_path)
        while True:
            for event in dev.read_loop():
                if event.type == ecodes.EV_KEY:
                    print(categorize(event))

Tags: pathnameindevfordevicecode键盘