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

如何在不使用getpass()的情况下屏蔽或隐藏python中的用户输入?,python,spyder,masking,Python,Spyder,Masking,正如问题所暗示的那样,我正在寻找一种在python中隐藏或屏蔽用户输入的方法,由于使用spyder,因此不使用标准的getpass库;我想知道这是否有可能使用按键并记录每个按键,直到按下回车键后才显示?如果这是可能的,有人能够帮助我与一个片段为此目的 谢谢, Sam Hedgecock您应该看看一种密钥记录机制。您可以检测用户按下的键,将这些键存储在缓冲区中,以便在按下ENTER键后最终输出它们 跨平台工作示例: from getkey import getkey, keys #Buffer

正如问题所暗示的那样,我正在寻找一种在python中隐藏或屏蔽用户输入的方法,由于使用spyder,因此不使用标准的getpass库;我想知道这是否有可能使用按键并记录每个按键,直到按下回车键后才显示?如果这是可能的,有人能够帮助我与一个片段为此目的

谢谢,
Sam Hedgecock

您应该看看一种密钥记录机制。您可以检测用户按下的键,将这些键存储在缓冲区中,以便在按下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安装getkey

这是否会阻止用户查看他们在控制台中按下的键?我理解它的其余部分,认为它是一个伟大的呼喊,只是需要它不被观众看到console@SamHedgecock对这将防止用户看到他们在控制台中按下的按钮。你自己试试看。:)由于某些原因,我似乎无法在spyder中实现此功能,它似乎陷入了循环中,按enter键并不会中断它-这是在修复了get keys模块中出现的与连接有关的初始错误之后bytes@SamHedgecock使用另一个IDE,然后使用Spyder。Spyder是Python中的数据科学工具。不是一般的编程。这段代码有效,请在另一个编辑器中进行测试。使用正确的工具进行作业。