为什么sys.stdout.write('\b')对换行符无效?

10 投票
3 回答
10418 浏览
提问于 2025-04-16 03:26

对比一下:

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

这和Python完全没有关系。问题出在你的控制台驱动程序上,它负责处理任何视觉效果。大多数控制台会模拟一种叫ASR33的打字机……回退键的意思是把打印头向左移动一个字符,尽量靠近行的开头位置。

4

这段话是说关于控制台窗口的一个特点:退格键只能在一行内使用,它不能跨越换行符去删除前面的内容。

17

今天我们可能会觉得在控制台上按退格键可以删除换行符是很合理的,但这样做就和以前的打字机不兼容了,因为打字机没有反向换行的功能。

撰写回答