据我所知,\b
控制字符不应该删除前一个字符(这也是 \b
+ del 字符),所以像这样的工作:
>>> print 'pototo\b\b\ba'
potato
是否有向前移动的字符,如非覆盖空间?预期用法类似于(我将此字符称为 \x
):
>>> print 'pototo\r\x\x\xa'
potato
显然,在打字机上,普通空格就可以做到这一点。但是在终端上,空格会删除下面的字母。
我的用例是一种预期匹配的场景,我想回顾性地返回并用颜色装饰字符流输出的某些部分,我想知道是否保留缓存是否需要内存中整个当前行的行。
最佳答案
如果可以依靠ANSI escape code sequences在您的终端 (*) 中,您可以使用光标前移 (CUF) 序列“CSI n C”,如下所示:
print "Pototo\b\b\ba\x1b[2Ces"
并得到:
Potatoes
CSI为\x1b[
,用于开始ANSI转义码序列。 2
是向右移动的字符数,C
是向右移动的命令。
(*) 一个很好的近似是您可以依赖 ANSI 代码,除非您需要支持 Windows。
关于python -\b 字符的反义词是什么,即一种不可删除的空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13799180/