一尘不染

Python在原始模式stdin打印中添加空格

linux

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

阅读 396

收藏
2020-06-07

共1个答案

一尘不染

看起来您只在换行,而没有回车。更改为

print("ASD", end="\r\n")
2020-06-07