如何在不使用getpass()的情况下屏蔽或隐藏python中的用户输入?

时间:2020-03-17 13:12:24

标签: python spyder masking

作为问题的建议,我正在寻找一种方法来隐藏或屏蔽python中的用户输入,而无需使用标准的getpass库(因为使用了spyder);我想知道是否有可能使用按下的键并记录每个按下的键而不显示直到按下回车键的情况?如果可能的话,有人可以为此目的帮助我摘录

谢谢, 山姆·赫奇柯克

1 个答案:

答案 0 :(得分:1)

您应该看一下一种密钥记录机制。您可以检测到用户按下了哪个键,并将这些键存储在缓冲区中,然后在按下ENTER键之后最终将其输出。

跨平台工作示例:

from getkey import getkey, keys

#Buffer holding all the pressed keys
pressed_keys = []

while True:
    #Getting the pressed key
    key = getkey()

    #Appending it to array
    pressed_keys.append(key)

    #If ENTER is pressed, exit loop
    if key == keys.ENTER:
        break

#Outputting all pressed keys after ENTER is pressed
for key in pressed_keys:
    print(key, end='')

但是您需要安装getkey。使用pip3 install getkey