Python – 删除和replace打印的项目
[使用Python 3.2]我想知道是否有可能删除您在Python中打印的项目,而不是从python gui,但从命令propt。 例如
a = 0 for x in range (0,3): a = a + 1 b = ("Loading" + "." * a) print (a)
所以它打印
>>>Loading >>>Loading. >>>Loading.. >>>Loading...
但是,我的问题是我想把这一切都放在一条线上,而当它出现其他问题的时候,它就会自动删除它。 所以,而不是去“加载”,“加载”,“Loa ….我想它得到”加载。“,然后它删除线上的东西,并用”加载..“取代它,然后删除“正在加载…”并用“正在加载…”replace它(在同一行上),它很难描述。
PS我试图使用Backspace字符,但它似乎并没有工作(“\ B”)
谢谢
只需使用CR即可开始行。
import time for x in range (0,5): b = "Loading" + "." * x print (b, end="\r") time.sleep(1)
一种方法是使用ANSI转义序列 :
import sys import time for i in range(10): print("Loading" + "." * i) sys.stdout.write("\033[F") # Cursor up one line time.sleep(1)
有时也是有用的(例如,如果你打印的东西比以前更短):
sys.stdout.write("\033[K") # Clear to the end of line
import sys import time a = 0 for x in range (0,3): a = a + 1 b = ("Loading" + "." * a) # \r prints a carriage return first, so `b` is printed on top of the previous line. sys.stdout.write('\r'+b) time.sleep(0.5) print (a)