用print实现原地打印

2019年12月12日 / 48次阅读 / Last Modified 2019年12月26日
内置函数

有一些命令行程序,它的屏幕打印部分做的很炫,比如能够打印进度条,能够在同一行反复打印输入不同的内容。python的print函数配合\r参数或\b参数,也可以实现这些功能,本文介绍这个知识点。

  • \r参数的含义: 表示将光标的位置回退到本行的开头位置
  • \b参数的含义: 表示将光标的位置回退一位 !

下面一段代码测试\r参数,在同一行反复输入1-100,不换行,代码如下:

import time

print('   :<---', end='\r')
for i in range(1,100):
    print(str(i), end='\r')
    time.sleep(.02)
print('100:OK!!')

print函数的end参数默认值为\n,即换行,现在使用\r参数,不换行,光标回到行首,在输出1-99的时候,这一行的<----不会被覆盖。最后输出100的时候,用OK!!覆盖箭头。运行效果如下:

用print实现原地打印
用print实现原地打印

推荐阅读:print打印进度条

现在来测试\b参数,这个比较简单:

>>> print('abcdefg\b\b12345')
abcde12345

这行代码,会打印出abcde12345,fg这两个字符因为有两个\b参数而不会显示出来。

使用print函数的\r和\b这两个机制,就可以实现各种风格的原地打印效果。

-- EOF --

本文链接:https://www.pynote.net/archives/1607

留言区

《用print实现原地打印》有1条留言

电子邮件地址不会被公开。 必填项已用*标注

  • 麦新杰

    console环境下,如果追求更复杂的打印输出,请移步python标准的curses模块。 [回复]


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top