如何删除或清除 python 中的打印文本
how to delete or clear printed text in python
我正在学习 python 在 Jupyterlab 中。目前,我试图找到一种方法来清除 Jupyterlab 中打印的文本,但我没有得到任何运气。
我在网上搜索了一些解决方案。但是,即使其他人报告了位置结果,他们也不会清除我控制台中打印的文本。
我试过了
(1). '\b' 字符
(2)os.system('cls')
(3)sys.stdout.write
全部清除打印文字失败
print('Hello',end='')
print(5*'\b')
print('how are you?',end='')
输出:
地狱
你好吗?
print('Hello',end='')
for i in range(len('Hello')):
print('\b',end='')
print('how are you?',end='')
输出:
你好吗?
print('Hey')
import os
if os.name=='nt':
os.system('cls')
else:
os.system('clear')
print('how are you?')
输出:
嘿
你好吗?
import sys, time
def delete_last_line():
sys.stdout.write('\x1b[1A')
sys.stdout.write('\x1b[2K')
print("hello")
time.sleep(2)
delete_last_line()
print("how are you")
输出:
你好
你好吗
不知是不是系统或模块更新导致方法不再按原样运行,还是我的电脑或Jupyterlab有bug导致失败。
我这样试过,成功了:
import sys
sys.stdout.write('hello\r')
sys.stdout.flush()
sys.stdout.write('how are you\r')
>>>how are you
您需要使用sys.stdout.write(info + '\r') 来输出信息。 '\r' 表示不换行回到行首。
注意长度,\r
光标returns到行首,但不会被覆盖,只是从输入的文本开始覆盖。
print('Hello', end='\r')
# >>> Hello
print('How are you?', end='\r')
# >>> How are you?
print('TEST', end='\r')
# >>> TESTare you?
也许我会建议一个辅助功能:
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
我正在学习 python 在 Jupyterlab 中。目前,我试图找到一种方法来清除 Jupyterlab 中打印的文本,但我没有得到任何运气。
我在网上搜索了一些解决方案。但是,即使其他人报告了位置结果,他们也不会清除我控制台中打印的文本。
我试过了 (1). '\b' 字符 (2)os.system('cls') (3)sys.stdout.write
全部清除打印文字失败
print('Hello',end='')
print(5*'\b')
print('how are you?',end='')
输出: 地狱 你好吗?
print('Hello',end='')
for i in range(len('Hello')):
print('\b',end='')
print('how are you?',end='')
输出: 你好吗?
print('Hey')
import os
if os.name=='nt':
os.system('cls')
else:
os.system('clear')
print('how are you?')
输出: 嘿 你好吗?
import sys, time
def delete_last_line():
sys.stdout.write('\x1b[1A')
sys.stdout.write('\x1b[2K')
print("hello")
time.sleep(2)
delete_last_line()
print("how are you")
输出: 你好 你好吗
不知是不是系统或模块更新导致方法不再按原样运行,还是我的电脑或Jupyterlab有bug导致失败。
我这样试过,成功了:
import sys
sys.stdout.write('hello\r')
sys.stdout.flush()
sys.stdout.write('how are you\r')
>>>how are you
您需要使用sys.stdout.write(info + '\r') 来输出信息。 '\r' 表示不换行回到行首。
注意长度,\r
光标returns到行首,但不会被覆盖,只是从输入的文本开始覆盖。
print('Hello', end='\r')
# >>> Hello
print('How are you?', end='\r')
# >>> How are you?
print('TEST', end='\r')
# >>> TESTare you?
也许我会建议一个辅助功能:
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