Python不按字符读取字符

时间:2015-03-04 10:02:13

标签: python string readline

python相当新,我们有一个有趣的情况。

我们想从stdin读取一个char,存储char,并显示另一个char。

示例:用户输入“c”,代码可以保存' c'并打印' v' (瞬间) 虽然getpass.getpass保存了输入,但它没有打印任何内容。 我在Mac上运行Python 2.7。

1 个答案:

答案 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系统。