2017-09-12 100 views
0

我爲我的pi製作了一個python程序,它檢測我的usb卡讀卡器(它的行爲像USB鍵盤)中的字符串並將它們寫入文件。我意識到,如果我使用程序運行它,程序不起作用。我的猜測是,因爲我的程序將原始輸入輸入到控制檯中,所以如果通過ssh打開它,它將不起作用。誰可以幫我這個事?通過ssh讀取USB磁條讀卡器

下面是我的程序:

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

您可以使用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