将输入在Python中作为单个输入



我已经编写了此代码,在该代码中我从条形码扫描仪中进行了扫描输入。但是,这里的输入来自单行,我无法获得下一个扫描输入和过去的扫描输入之间的区别。这是我的代码:

from evdev import InputDevice, categorize, ecodes
import select
dev = InputDevice('/dev/input/event2')
data = ""
def parse_key_to_char(val):
    return CODE_MAP_CHAR[val] if val in CODE_MAP_CHAR else ""
for event in dev.read_loop():
    if event.type == ecodes.EV_KEY:
        e = categorize(event)
        if e.keystate == e.key_up:
            print parse_key_to_char(e.keycode)

,输出为:

0
7
5
6
7
8
1
6
4
1
2
5

预期输出是:

075678164125

如果我处于同一终端,则可以工作,但是如果我专注于其他终端,则无法正常工作。我希望这些输入在后台捕获,并将它们传递到调用当前功能的其他功能。

print在打印文本的末尾自动添加一条新线路。您需要将所有符号添加到一个字符串中,然后打印:

for event in dev.read_loop():
    if event.type == ecodes.EV_KEY:
        e = categorize(event)
        if e.keystate == e.key_up:
            text = text + parse_key_to_char(e.keycode)
print text

ps。您可以在print之后添加逗号,然后没有新的行,而是一个空间:

for i in range (5):
    print i,

输出:

0 1 2 3 4

相关内容

  • 没有找到相关文章

最新更新