Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 什么';s与\b字符相反,即一种非擦除空格?_Python_String_Character_Ascii_Tty - Fatal编程技术网

Python 什么';s与\b字符相反,即一种非擦除空格?

Python 什么';s与\b字符相反,即一种非擦除空格?,python,string,character,ascii,tty,Python,String,Character,Ascii,Tty,据我所知,\b控制字符不应该删除前一个字符(这也将是\b+删除字符),因此类似于这样的操作: >>> print 'pototo\b\b\ba' potato 是否有向前移动的字符,如非覆盖空格?预期的用法如下(我称这个字符为\x): 显然,在打字机上,一个普通的空格就可以了。但在终端上,一个空格会擦除下面的字母 我的用例是一种预期匹配的场景,在这种场景中,我想回顾并用颜色装饰字符流输出的某些部分,我想知道是否有必要在内存中保留整个当前行的缓存 您应该重新写入字符: >

据我所知,
\b
控制字符不应该删除前一个字符(这也将是
\b
+删除字符),因此类似于这样的操作:

>>> print 'pototo\b\b\ba'
potato
是否有向前移动的字符,如非覆盖空格?预期的用法如下(我称这个字符为
\x
):

显然,在打字机上,一个普通的空格就可以了。但在终端上,一个空格会擦除下面的字母


我的用例是一种预期匹配的场景,在这种场景中,我想回顾并用颜色装饰字符流输出的某些部分,我想知道是否有必要在内存中保留整个当前行的缓存

您应该重新写入字符:

>>> print 'pototo\rpota'
potato
如果您不想重新写入它们,则应该使用类似于手动设置光标位置的库。

如果您可以在终端(*)中使用光标向前(CUF)序列“CSI n C”,如下所示:

print "Pototo\b\b\ba\x1b[2Ces"
并获得:

Potatoes
CSI是
\x1b[
,用于启动ANSI转义码序列。
2
是向右移动的字符数,
C
是向右移动的命令



(*)一个很好的近似方法是,除非您需要支持Windows,否则您可以依赖ANSI代码。

看起来没有任何方法可以向前移动…我不相信有这样的字符,至少彻底搜索没有发现任何字符。但是,在linux下,您应该能够使用有了它,你就不能在单词的末尾附加任何内容(不重写)。@hayden我的观点是命令行的编写不允许出现这些复杂的情况。你可以完全重写一行(正如我的回答所指出的)但是如果你想做其他事情,你将没有可移植的代码。如果你想做这些事情,我建议你使用
诅咒
或其他用于终端操作的库。很抱歉,我没有正确阅读你答案的第二部分。另一个使用案例:
打印“Hello Tim\b\b\bw\x1b[2C,很好的问题”
:)
Potatoes