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

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

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

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

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

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

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

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

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

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

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

不过写这么多彷佛是废话,在耳边经常听到一句话:那就是不要重复造轮子。实际上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节也提供了一个不错的进度条类,代码以下:

运行结果以下图所示:

相关文章
相关标签/搜索