我需要在Python中将标准输入切换为非缓冲模式,以便可以从中读取单个字符。我设法使其正常工作,但现在标准输出已损坏:以某种方式在换行符之后发出了一些空格字符,第一行为零,第二行为3,第三行为6,依此类推:
ASD ASD ASD
操作系统是Ubuntu Linux 12.04,64位版本,Python版本是3.2.3。
我如何摆脱这种行为?
以下是我使用的代码:
import sys import tty import termios fd = sys.stdin.fileno() old_settings = termios.tcgetattr(fd) tty.setraw(sys.stdin) for i in range(0, 10): print("ASD") termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
看起来您只在换行,而没有回车。更改为
print("ASD", end="\r\n")