Python en modo raw impresión estándar agrega espacios
Necesitaba cambiar la entrada estándar al modo sin búfer en Python, de modo que pueda leer caracteres individuales fuera de él. Logré que funcionara, pero ahora la salida estándar está rota: de alguna manera parece que después del carácter de nueva línea, se emiten algunos caracteres de espacio, cero en la primera línea, 3 en la segunda, 6 en la tercera, etc. :
ASD
ASD
ASD
El sistema operativo es Ubuntu Linux 12.04, edición de 64 bits, la versión de Python es 3.2.3.
¿Cómo puedo librarme de este comportamiento?
A continuación se muestra el código que he utilizado:
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)