python print时清除上一行_如何在python中覆盖以前的打印到stdout?

一个更清洁,更“即插即用”的版本@ Nagasaki45的回答:

def print_statusline(msg: str):

last_msg_length = len(print_statusline.last_msg) if hasattr(print_statusline, 'last_msg') else 0

print(' ' * last_msg_length, end='\r')

print(msg, end='\r')

sys.stdout.flush() # Some say they needed this, I didn't.

print_statusline.last_msg = msg

# Then simply use like this:

for msg in ["Initializing...", "Initialization successful!"]:

print_statusline(msg)

time.sleep(1)

# If you want to check that the line gets cleared properly:

for i in range(9, 0, -1):

print_statusline("{}".format(i) * i)

time.sleep(0.5)与其他许多答案不同,它可以使用不同长度的字符串正常工作,因为它会清空带有空格的行。也适用于Windows。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值