如何在命令行上清理特定的东西

时间:2016-04-23 10:07:13

标签: python python-3.x command-line cmd

我想知道是否可以在Python脚本运行的命令shell上清理特定的东西?

例如,脚本包含:

print ("Hello world")

当我双击此脚本时,会弹出cmd,我会在命令行上看到Hello world。现在我想知道,是否有可能从shell中清除Hello World并在其中写下其他内容而cmd正在运行?像:

print ("Hello world")
time.sleep(1)

# a module replace New Text with Hello world
print("New Text")

2 个答案:

答案 0 :(得分:2)

您可以使用ANSI转义字符:

sys.stdout.write("\033[F")  # Cursor up to line
sys.stdout.write("\033[K")  # Clear line

或者虽然这有时在Windows cmd中不起作用,但请尝试以下方法:

sys.stdout.write("\r")  # Move to line beginning

或者你想要它:

import time

print("Hello world", end="\r")
time.sleep(1)
print("New text   ")  # Trailing slashes to completely override "Hello world"

答案 1 :(得分:0)

刷新印刷文字,不要在最后写一个换行符,而是\r 为了在下一行的开头开始打印:

from __future__ import print_function  # to make it work with Python 2, just in case
import time

print ("Hello world", end='\r', flush=True)
time.sleep(1)
print ("New Text     ", end='\r', flush=True)
time.sleep(1)
print ("Last Text    ")