Python スクリプトで、キーボードとして検出される QR コード リーダーのみをリッスンするようにしたいと考えています。キーボードがコンソールやどこかに書き込みをしたくありません。Linux では、Python スクリプトのみがそのキーボードをリッスンする必要があります。それは可能ですか?そのようなことを防ぐことができるライブラリまたは udev ルールはありますか?
while True:
qr_code = input()
logging.info(qr_code)
私もpython-evdevを試しました。でデバイスにのみバインドできる場所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))