我使用 module 做了一个代码keyboard。您使用pip install keyboard. 它读取左、右、结束、主页、输入、退出、退格和许多其他键。
你可以使用函数read_input。它有两个选项text和cancel. text是要打印的文本,cancel是取消输入的键。如果您按下escape然后它返回None,如果enter然后键入文本。
这是代码:
def read_input(text="",cancel="esc"):
import keyboard,string as t
print(text,end="")
output = []
output2 = []
allowed = t.ascii_letters+"1234567890!@#$%^&*()-=_+{}[]|\:;',<>./?`~"+'"'
while True:
key = keyboard.read_event()
k = key.name
if key.event_type == "up":continue
if k == cancel:print("");return None
elif k == "enter":break
elif k == "end":output = output+output2;output2 = []
elif k == "home":output2 = output+output2;output = []
elif k == "left":
try:output2.insert(0,output.pop())
except:pass
elif k == "right":
try:output.append(output2.pop(0))
except:pass
elif k == "space":k = " ";output.append(k)
elif k == "backspace":output = output[:-1]
elif k in allowed:output.append(k)
foutput2 = ""
for put in output:
foutput2 += str(put)
for put in output2:
foutput2 += str(put)
for i in range(0,len(foutput2)+2):keyboard.press_and_release("backspace")
print(foutput2)
return foutput2
您可以像普通输入一样使用它:
print(read_input("Enter your name: "))
另一边有一些问题。
它从整个窗口中读取密钥,而不仅仅是 python。
在第一秒(执行时)键入的键可能会被忽略。
这是一个动画:
