我需要在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")
关于原始模式下的Python在stdin打印中添加空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12231794/