我对'\ b'感到困惑。 我知道'\ b'表示退格,但在Python中,如果句子的最后一个字符似乎无效。
示例:
>>print 'abc\be'
>>abe
>>print 'abc\b'
>>abc
为什么?
另外一个关于OSX / python2.7.10 IPython 的例子:
>> import sys
>> sys.stdout.write('abc\b')
>> abc
>> sys.stdout.write('abc\be')
>> abe
答案 0 :(得分:4)
print
完成后会有隐含的换行符,这会在\b
被回显后立即生成换行符。这会导致光标移动到下一行,因此不会有任何覆盖前一行c
的内容。
如果你做了类似的事情:
print 'abc\b', 'def'
你会看到如下输出:
ab def
即。它不是句子末尾的“无效”,只是因为你立即打印换行符,没有任何机会可以覆盖退回的角色。
为了使这一点更清晰(希望如此) - 直接在python中输入行:
print会添加换行符,如果我们使用sys.stdout.write
,则不会自动添加换行符:
>>> import sys
>>> sys.stdout.write('abc')
abc>>> sys.stdout.write('abc\b')
ab>>>