0
寫一個CLI程序,我想讀取Ctrl+<anything>
命令。從python CLI讀取Ctrl,Alt和Shift鍵
如何從我的CLI python應用程序中監聽和處理:Ctrl+R
組合鍵?
目前,只有Linux環境才需要。 pythonic方法將是最好的選擇,但我不知道如何。
從信號中,可以處理衆所周知的輸入,但不能處理自定義擊鍵。
寫一個CLI程序,我想讀取Ctrl+<anything>
命令。從python CLI讀取Ctrl,Alt和Shift鍵
如何從我的CLI python應用程序中監聽和處理:Ctrl+R
組合鍵?
目前,只有Linux環境才需要。 pythonic方法將是最好的選擇,但我不知道如何。
從信號中,可以處理衆所周知的輸入,但不能處理自定義擊鍵。
Pynput是一個包,設置爲處理各種操作系統的鼠標和鍵盤輸入。 This Github issue演示如何檢測持有的密鑰。如果您不想遵循以下鏈接:
from pynput import keyboard
# The key combination to check
COMBINATION = {keyboard.Key.cmd, keyboard.Key.ctrl}
# The currently active modifiers
current = set()
def on_press(key):
if key in COMBINATION:
current.add(key)
if all(k in current for k in COMBINATION):
print('All modifiers active!')
if key == keyboard.Key.esc:
listener.stop()
def on_release(key):
try:
current.remove(key)
except KeyError:
pass
with keyboard.Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
您需要直接調用OS函數來獲取這些密鑰的狀態。你正在運行哪個操作系統?雖然Control和一個字母的組合會生成一個可以檢測到的字符。 –
好。但是,有一些pythonic的方式來做到這一點,而不寫一個操作系統綁定的實現?我相信stdin的紅色是一個乾淨的方法......但是,我不知道如何。 – apast
你的目標是使用*任何*控制鍵,或只有字母表中的字母? –