2019年12月12日 / 763次阅读 / Last Modified 2020年5月23日
print
有一些命令行程序,它的屏幕打印部分做的很炫,比如能够打印进度条,能够在同一行反复打印输入不同的内容。python的print函数配合\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打印进度条
现在来测试\b参数,这个比较简单:
>>> print('abcdefg\b\b12345')
abcde12345
这行代码,会打印出abcde12345,fg这两个字符因为有两个\b参数而不会显示出来。
使用print函数的\r和\b这两个机制,就可以实现各种风格的原地打印效果。
-- EOF --
本文链接:https://www.pynote.net/archives/1607
《用print实现原地打印》有1条留言
前一篇:用argparse实现任意类型的命令行参数
后一篇:python基金会如何募资?
Ctrl+D 收藏本页
©Copyright 麦新杰 Since 2019 Python笔记
console环境下,如果追求更复杂的打印输出,请移步python标准的curses模块。 [ ]