所以我在ubntu中使用python而我正在做的是从我正在实时播放的游戏中读取帧数据(用于生成ML的训练数据)以及我实时捕获的每个帧(从游戏屏幕开始) )我想知道天气是否按下了任何键盘按键,最后哪一个如果没有按键,我也应该得到一个明确的指示。
注意:我的程序在一个单独的窗口中运行,而我将在其他窗口中播放。
我想要一个像:
这样的功能z=get_current_key_input(event)
if z == None: #This may cause warning form the warnings module
print 'No key is pressed for this frame move on to the next.'
else:
print str(z.key_code),'key is pressed for this frame.'
我可以为您提供代码,但它很乱,并且有cv2和几个更痛苦的依赖,所以我想我会按需提供它。
我通过谷歌搜索获得的功能是每次按键时都会被调用的功能,但它是异步的并导致延迟,因此,我使用的传输数据就是废话。
[UPDATE]:
我通过激烈的搜索找到了一个安静有希望的功能,但实际上无法解决它的复杂使用和痛苦的文档。 如果有人能够理解如何使用这些文档,那么对我来说将是一个很大的帮助。 链接到该功能:here!
答案 0 :(得分:1)
这是一个来自pynput示例的简单程序:
def on_press(key):
try:
print('alphanumeric key {0} pressed'.format(key.char))
except:
print('special key {0} pressed'.format(key))
def on_release(key):
print('{0} released'.format(key))
if key == keyboard.Key.esc:
return False
def get_current_key_input():
with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()