Python中如何写控制台进度条的整理

2020年08月23日 阅读数:75
这篇文章主要向大家介绍Python中如何写控制台进度条的整理,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

本文实例讲述了Python显示进度条的方法,是Python程序设计中很是实用的技巧。分享给你们供你们参考。具体方法以下:css

首先,进度条和通常的print区别在哪里呢?html

答案就是print会输出一个\n,也就是换行符,这样光标移动到了下一行行首,接着输出,以前已经经过stdout输出的东西依旧保留,并且保证咱们在下面看到最新的输出结果。python

进度条否则,咱们必须再原地输出才能保证他是一个进度条,不然换行了怎么还叫进度条?git

最简单的办法就是,再输出完毕后,把光标移动到行首,继续在那里输出更长的进度条便可实现,新的更长的进度条把旧的短覆盖,就造成了动画效果。github

能够想到那个转义符了吧,那就是\ r。web

转义符r就能够把光标移动到行首而不换行,转义符n就把光标移动到行首而且换行。app

在python中,输出stdout(标准输出)可使用sys.stdout.write
例如:学习

第二种思路是用转义符\b
转义符\b是退格键,也就是说把输出的光标往回退格子,这样就能够不用+=了,例如:动画

光标回退2格,写个#再回退,再写,达到增加的目的了ui

不过写这么多彷佛是废话,在耳边经常听到一句话:那就是不要重复造轮子。实际上python有丰富发lib帮你实现这个东西,你彻底能够把心思放在逻辑开发上而不用注意这些小细节

下面要介绍的就是这个类“progressbar”(http://code.google.com/p/python-progressbar/),使用easy_install能够方便的安装这个类库,其实就一个文件,拿过来放到文件同一个目录下面也直接能够import过来

以下图所示:

下面就是基本使用举例:

官方示例:http://code.google.com/p/python-progressbar/source/browse/progressbar/examples.py

再发一个类:

另外,python cookbook中11.1节也提供了一个不错的进度条类,代码以下: