我需要在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/

10-11 07:39