我想知道是否有可能删除您在Python中打印的项目-不是从Python GUI中而是从命令提示符中删除。例如a = 0 for x in range (0,3): a = a + 1 b = ("Loading" + "." * a)print (a)所以它打印>>>Loading >>>Loading. >>>Loading.. >>>Loading...但是,我的问题是我希望所有这些都在一条线上,因为它会在出现其他情况时自行删除。因此,"Loading", "Loading.", "Loading...我希望打印而不是打印"Loading.",然后删除行上的内容并替换为"Loading..",然后删除"Loading.."并替换(在同一行上)"Loading..."。这很难描述。ps我尝试使用Backspace字符,但似乎不起作用("\b")谢谢
3 回答
素胚勾勒不出你
TA贡献1827条经验 获得超9个赞
一种方法是使用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
慕容森
TA贡献1853条经验 获得超18个赞
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)
请注意,您可能必须在运行sys.stdout.flush()之后立即运行,sys.stdout.write('\r'+b)具体取决于要进行打印的控制台,以便在请求时打印结果而没有任何缓冲。
添加回答
举报
0/150
提交
取消