Python 如何从终端删除字符或行?
How to delete character or line from terminal in Python?
我想从 Python.
中的终端删除字符或行
例如,我使用 print("Hello World")
打印了“Hello World”。然后我使用 time.sleep(3)
等待 3 秒。然后我想在终端中删除一个字符,所以终端将是 Hello Worl
.
所以,我想要的结果是:
- 当我启动我的程序时,
Hello World
打印。
- 程序休眠 3 秒。
- 然后终端中的文本变为
Hello Worl
。
此外,我从 SO 和 write = sys.stdout.write
、write("\b")
中找到了一些解决方案,但这会打印 <0x08>
.
有没有办法在终端中删除字符或行?
我正在使用 Python 3.8 和 Windows 10。谢谢!
您可以使用 end='\r'
作为您的打印语句来完成此操作。 \r
使光标停留在同一行,所以你可以覆盖它。
from time import sleep
print("Hello world", end='\r')
sleep(3)
print("Hello worl ")
您应该注意 print
函数默认以换行符结尾。要将光标保持在您打印的行的末尾,您应该在 print
函数中使用 end
参数:
print("Hello World", end="", flush=True) # Edited
使用end = ''
的原因是为了让打印函数结束时没有新字符,而不是使用默认的换行符。
对于下一步,您可以使用write = sys.stdout.write
,就像您在另一个question中提到的那样,并且为了避免在打印多余字符时出现任何问题,您可以确保使用write("\b \b")
.
完整的代码可以这样写:
import sys, time
print("Hello World", end="")
time.sleep(3)
write = sys.stdout.write
write('\b \b')
您也可以使用 sys.stdout.write
而不是 print
函数。据我所知,这两者之间的主要区别之一是 print
默认情况下强制您从一个新行开始。但是,使用上述解决方案并使用 end = ''
就没有问题了。
我想从 Python.
中的终端删除字符或行例如,我使用 print("Hello World")
打印了“Hello World”。然后我使用 time.sleep(3)
等待 3 秒。然后我想在终端中删除一个字符,所以终端将是 Hello Worl
.
所以,我想要的结果是:
- 当我启动我的程序时,
Hello World
打印。 - 程序休眠 3 秒。
- 然后终端中的文本变为
Hello Worl
。
此外,我从 SO 和 write = sys.stdout.write
、write("\b")
中找到了一些解决方案,但这会打印 <0x08>
.
有没有办法在终端中删除字符或行?
我正在使用 Python 3.8 和 Windows 10。谢谢!
您可以使用 end='\r'
作为您的打印语句来完成此操作。 \r
使光标停留在同一行,所以你可以覆盖它。
from time import sleep
print("Hello world", end='\r')
sleep(3)
print("Hello worl ")
您应该注意 print
函数默认以换行符结尾。要将光标保持在您打印的行的末尾,您应该在 print
函数中使用 end
参数:
print("Hello World", end="", flush=True) # Edited
使用end = ''
的原因是为了让打印函数结束时没有新字符,而不是使用默认的换行符。
对于下一步,您可以使用write = sys.stdout.write
,就像您在另一个question中提到的那样,并且为了避免在打印多余字符时出现任何问题,您可以确保使用write("\b \b")
.
完整的代码可以这样写:
import sys, time
print("Hello World", end="")
time.sleep(3)
write = sys.stdout.write
write('\b \b')
您也可以使用 sys.stdout.write
而不是 print
函数。据我所知,这两者之间的主要区别之一是 print
默认情况下强制您从一个新行开始。但是,使用上述解决方案并使用 end = ''
就没有问题了。