我为我的pi创建了一个python程序,它检测来自usb读卡器的字符串(它就像一个USB键盘)并将它们写入文件。我意识到如果我在程序中运行它,该程序不起作用。我的猜测是因为我的程序将原始输入键入控制台,如果我通过ssh将其打开,它将无法工作。谁可以帮我这个事?
以下是我的计划:
import datetime
import time
card = raw_input()
t = datetime.datetime.now()
while True:
f = open("Laptop Sign Out" + '.txt', 'a')
f.write("Card Number: " + card[1:10] + " Time: " + t.strftime("%m-%d-%Y $
f.write('\n')
f.write(';')
f.write('\n')
f.close()
time.sleep(5)
答案 0 :(得分:0)
您可以使用evdev
库,它允许将内核中生成的事件直接重定向到用户代码。
看看这个例子:
>>> from evdev import InputDevice, categorize, ecodes
>>> dev = InputDevice('/dev/input/event1')
>>> print(dev)
device /dev/input/event1, name "Dell Dell USB Keyboard", phys "usb-0000:00:12.1-2/input0"
>>> for event in dev.read_loop():
... if event.type == ecodes.EV_KEY:
... print(categorize(event))
... # pressing 'a' and holding 'space'
key event at 1337016188.396030, 30 (KEY_A), down
key event at 1337016188.492033, 30 (KEY_A), up
key event at 1337016189.772129, 57 (KEY_SPACE), down
key event at 1337016190.275396, 57 (KEY_SPACE), hold
key event at 1337016190.284160, 57 (KEY_SPACE), up
补充阅读为here
描述here
的方式略有不同