2024-10-01 00:30:36 发布
网友
我正在努力编写代码,以便不断进步。 当我打印CR时,它只是将光标移到开头,但文本仍然保留。 如下图所示:
print('xxxxx', end='\r') print('yy') # I want to print only 'yy' >> yyxxx
我可以删除文本,而不仅仅是移动光标吗
如果您使用的终端理解ANSI转义序列(这是最常见的终端),则可以使用以下选项:
print('xxxxx', end='\r') print('yy\x1b[K')
\x1b[K序列指示终端从光标擦除到行尾
\x1b[K
与切普纳的答案类似,但对于不熟悉ANSI control characters的代码读者来说可能更容易理解
CURSOR_UP_ONE = "\x1b[1A" ERASE_LINE = "\x1b[2K" print("xxxxx") print(CURSOR_UP_ONE + ERASE_LINE + "yy")
如果您不想硬编码这些,可以在流行的第三方库colorama中找到它们:
>>> import colorama # pip install colorama >>> colorama.ansi.clear_line() '\x1b[2K' >>> colorama.ansi.Cursor.UP() '\x1b[1A'
如果您使用的终端理解ANSI转义序列(这是最常见的终端),则可以使用以下选项:
\x1b[K
序列指示终端从光标擦除到行尾与切普纳的答案类似,但对于不熟悉ANSI control characters的代码读者来说可能更容易理解
如果您不想硬编码这些,可以在流行的第三方库colorama中找到它们:
相关问题 更多 >
编程相关推荐