为什么sys.stdout.write('\ b')不对新换行退格?

时间:2010-08-29 02:42:15

标签: python

比较

for item in range(0, 5):
    sys.stdout.write('c')
for item in range(0, 5):
    sys.stdout.write('\b')

按照您的想象工作,但是:

for item in range(0, 5):
    sys.stdout.write('\n')
for item in range(0, 5):
    sys.stdout.write('\b')

仍然留下五个换行符。有什么想法吗?

3 个答案:

答案 0 :(得分:16)

今天看起来似乎有理由期望退格能够在控制台上处理换行符但由于没有反向换行而不能与远程类型向后兼容。

答案 1 :(得分:4)

这是关于控制台窗口的行为:退格只能在一行内工作,它们不会通过换行进行备份。

答案 2 :(得分:0)

这与Python完全无关。它是您的控制台驱动程序,可以处理任何视觉效果。他们中的大多数将模拟ASR33电传打字机......退格意味着如果可能的话,将打印头的一个空间移回到行首位置。