我们先看看这张转义字符图:
1. 知识储备
\r
表示将光标的位置回退到本行的开头位置\b
表示将光标的位置回退一位
在 python
语言中, 使用 print
打印输出时,默认是会进行换行的。如何让其不换行呢?
- 在
python 2.x
中的语法是在print
语句的末尾添加逗号,例如print x,
;或者使用sys.stdout.write()
对标准输出进行重定向,如此文所示 https://segmentfault.com/q/1010000002810865 。 - 在
python 3.x
中,print
成为了一个独立的函数,有一个end
参数,可以指定输出的结束符,默认是\n
。
2. 在命令行中实现倒计时功能
1 # __author__ = "Gao Zhengjie" 2 # __date__ = "2018/1/5" 3 # __Desc__ = 在一行中不断刷新倒计时 4 5 import time 6 7 count_down = 10 # 设置倒计时时间,单位:秒 8 for i in range(count_down, 0, -1): 9 msg = u"\r系统将在 " + str(i) + "秒 内自动退出" 10 print(msg, end="") 11 time.sleep(1) 12 end_msg = "结束" + " "*(len(msg)-len("结束")) # 如果单纯只用“结束”二字,无法完全覆盖之前的内容 13 print(u"\r"+end_msg)
3. 在命令行中实现“转圈”功能
1 # __author__ = "Gao Zhengjie" 2 # __date__ = "2018/1/5" 3 # __Desc__ = 在一行中不断刷新转圈 4 5 import time 6 7 count_down = 10 # 设置倒计时时间,单位:秒 8 interval = 0.25 # 设置屏幕刷新的间隔时间,单位:秒 9 for i in range(0, int(count_down/interval)): 10 ch_list = ["\\", "|", "/", "-"] 11 index = i % 4 12 msg = "\r程序运行中 " + ch_list[index] 13 print(msg, end="") 14 time.sleep(interval) 15 print(u"\r结束" + " "*len(msg))
4. 在命令行中实现进度条功能
1 # __author__ = "Gao Zhengjie" 2 # __date__ = "2018/1/5" 3 # __Desc__ = 在命令行中实现进度条功能 4 5 import time 6 7 count_down = 10 # 设置倒计时时间,单位:秒 8 interval = 1 # 设置屏幕刷新的间隔时间,单位:秒 9 for i in range(0, int(count_down/interval)+1): 10 print("\r"+"▇"*i+" "+str(i*10)+"%", end="") 11 time.sleep(interval) 12 print("\n加载完毕")
作者:高正杰
链接:https://www.jianshu.com/p/eb5c23cd6e34
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
链接:https://www.jianshu.com/p/eb5c23cd6e34
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。