wim*_*wim 5 python string ascii character tty
根据\b我的理解,控制字符不应该删除前一个字符(这也将是\b一个del字符),所以这样的东西有效:
>>> print 'pototo\b\b\ba'
potato
Run Code Online (Sandbox Code Playgroud)
是否有一个向前移动的角色,就像一个非覆盖空间?预期的用法就像(我称之为这个角色\x):
>>> print 'pototo\r\x\x\xa'
potato
Run Code Online (Sandbox Code Playgroud)
显然,在打字机上,普通空间可以做到这一点.但是在一个终端上,一个空间会擦掉下面的字母.
我的用例是一个pexpect匹配的场景,我想追溯回去并用颜色装饰字符流输出的某些部分,我想知道是否需要在内存中保留整个当前行的缓存或不.
如果您可以依赖终端 (*) 中的ANSI 转义码序列,则可以使用光标前移 (CUF) 序列“CSI n C”,如下所示:
print "Pototo\b\b\ba\x1b[2Ces"
Run Code Online (Sandbox Code Playgroud)
并得到:
Potatoes
Run Code Online (Sandbox Code Playgroud)
CSI 是\x1b[, 用于启动 ANSI 转义码序列。2是向右移动的字符数,C是向右移动的命令。
(*) 一个很好的近似是您可以依赖 ANSI 代码,除非您需要支持 Windows。