python相当新,我们有一个有趣的情况。
我们想从stdin读取一个char,存储char,并显示另一个char。
示例:用户输入“c”,代码可以保存' c'并打印' v' (瞬间)
虽然getpass.getpass
保存了输入,但它没有打印任何内容。
我在Mac上运行Python 2.7。
答案 0 :(得分:2)
您正在寻找的是"禁用回声"在终端(又名TTY)。拥有这些关键字后,搜索解决方案变得更加容易。这是一个:
How to turn console echo back on after tty.setcbreak()
基本上,禁用"回显"用户对屏幕的输入,请执行以下操作:
import sys
import termios
import tty
old_settings = termios.tcgetattr(sys.stdin)
tty.setcbreak(sys.stdin.fileno())
之后,您可以使用常规函数从stdin
读取并显示您想要的任何内容。然后重新启用终端回声:
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, old_settings)
请注意,上述假设您正在使用类Unix系统。