为了账号安全,请及时绑定邮箱和手机立即绑定

删除并替换打印的项目

删除并替换打印的项目

蓝山帝景 2019-11-11 15:36:58
我想知道是否有可能删除您在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


查看完整回答
反对 回复 2019-11-11
?
慕容森

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)具体取决于要进行打印的控制台,以便在请求时打印结果而没有任何缓冲。


查看完整回答
反对 回复 2019-11-11
  • 3 回答
  • 0 关注
  • 458 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信