如何在Python中删除或清除打印文本

Muc*_*cal 6 python python-3.x jupyter jupyter-lab

我正在 Jupyterlab 学习 python。目前,我试图找到一种方法来清除 Jupyterlab 中的打印文本,但我没有得到任何运气。

我在网上搜索找到了一些解决方案。然而,即使其他人报告了位置结果,他们也不会清除我控制台中的打印文本。

我尝试了(1)。'\b' 字符 (2)os.system('cls') (3)sys.stdout.write

他们都未能清除打印的文本。

print('Hello',end='')
print(5*'\b')
print('how are you?',end='')
Run Code Online (Sandbox Code Playgroud)

输出:你好吗?

print('Hello',end='')
print(5*'\b')
print('how are you?',end='')
Run Code Online (Sandbox Code Playgroud)

输出:你好吗?

print('Hello',end='')
for i in range(len('Hello')):
    print('\b',end='')

print('how are you?',end='')
Run Code Online (Sandbox Code Playgroud)

输出:嘿,你好吗?

print('Hey')
import os
if os.name=='nt':
    os.system('cls')
else:
    os.system('clear')
print('how are you?')
Run Code Online (Sandbox Code Playgroud)

输出:你好,你好吗

我想知道是否是因为系统或模块已更新,导致方法不再以相同的方式工作,或者我的计算机或 Jupyterlab 有错误导致失败。

Gee*_*oss 7

注意长度,\r光标返回到行首,但不会被覆盖,只是从输入文本的开头开始覆盖。

print('Hello', end='\r')
# >>> Hello
print('How are you?', end='\r')
# >>> How are you?
print('TEST', end='\r')
# >>> TESTare you?
Run Code Online (Sandbox Code Playgroud)

也许我会建议一个辅助功能:

def echo(string, padding=80):
    padding = " " * (padding - len(string)) if padding else ""
    print(string + padding, end='\r')

echo("Hello")
# >>> Hello
echo("How are you?")
# >>> How are you?
echo("TEST")
# >>> TEST
Run Code Online (Sandbox Code Playgroud)