失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python操作键盘输入中文_用python从键盘读取原始输入

python操作键盘输入中文_用python从键盘读取原始输入

时间:2022-02-12 09:33:39

相关推荐

python操作键盘输入中文_用python从键盘读取原始输入

两种依赖操作系统处理键盘的输入方法import sys

for line in sys.stdin.readlines():

print line

这是一个“简单”的解决方案,考虑到它读取sys.stdin,你可能需要一个驱动程序,如果操作系统一路剥离东西,它可能会打破任何方式。

这是另一个解决方案(仅限linux afaik):import sys, select, tty, termios

class NonBlockingConsole(object):

def __enter__(self):

self.old_settings = termios.tcgetattr(sys.stdin)

tty.setcbreak(sys.stdin.fileno())

return self

def __exit__(self, type, value, traceback):

termios.tcsetattr(sys.stdin, termios.TCSADRAIN, self.old_settings)

def get_data(self):

try:

if select.select([sys.stdin], [], [], 0) == ([sys.stdin], [], []):

return sys.stdin.read(1)

except:

return '[CTRL-C]'

return False

data = ''

printed = ''

last = ''

with NonBlockingConsole() as nbc:

while 1:

c = nbc.get_data()

if c:

if c == '\x1b': # x1b is ESC

break

elif c == '\x7f': # backspace

data = data[:-1]

printed = data[:-1]

last = ''

sys.stdout.write('\b')

elif c == '[CTRL-C]':

data = ''

last = ''

sys.stdout.write('\n')

elif c == '\n': # it's RETURN

sys.stdout.write('\n')

# parse data here

data = ''

else:

data += (c)

last = c

sys.stdout.write(c)

司机问题?

如果以上都不起作用,您将无法在Python中获取密钥。

很可能您需要一个实际的驱动程序来解析从键盘发送的数据,这不是USB堆栈上的一个普通键盘事件,这意味着。。对于Python来说,这是一种低级的方式,而您将失去运气。。。除非你知道如何构建linux驱动程序。

看来有更多的人想做点什么。

正在尝试PyUSB

您可以尝试PyUSB解决方案并从USB插槽中获取原始数据,但请再次。。如果G-keys没有注册为“传统”USB数据,它可能会被丢弃,而您将不会收到它。

在Linux中连接到输入管道

另一种未经测试的方法,但可能有效//Hackaday:

如果觉得《python操作键盘输入中文_用python从键盘读取原始输入》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。