开启辅助访问 切换到窄版

打印 上一主题 下一主题

使用tqdm在Python应用中显示进度|Linux中国

[复制链接]
作者:诚意爱kai 
版块:
嵌入式操作系统 linux 发布时间:2021-1-9 00:04:25
12270
楼主
跳转到指定楼层
| 只看该作者 回帖奖励 |倒序浏览 |阅读模式

导读:如果你的程序需要一段时间才能显示结果,可通过显示它的进度来避免让用户感到沮丧。
本文字数:3093,阅读时长大约:3分钟
作者:Moshe Zadka
译者:geekpi
阿拉米语,希伯来语和阿拉伯语中的闪米特语根 q-d-m 通常与前进或进度有关。阿拉伯语 taqaddum ()的意思是“进度”。进度是很重要的。正如每部感觉良好的电影都会告诉你,旅程和目的地同样重要。
大多数程序都有一个明确的目标,一个期望的最终状态。有时,计算这个最终状态可能需要很长的时间。虽然计算机没有感情不在乎,但人却在乎。人类并不乐意坐在原地等待,而看不到任何明显的进展迹象。疑问不断蔓延。程序崩溃了吗?磁盘性能是否抖动?操作系统是否把所有的计算资源都分配给了其他任务?
就像正义一样,进度必须被看到,而不仅仅是完成。Python 库tqdm有助于使进度变得明确。
模块可在控制台下工作,但它也专门支持了我最喜欢的环境之一 Jupyter。要在 Jupyter 中使用 ,你需要导入 子模块并安装ipywidgets。 子模块与 接口兼容。
这意味着你可以做一些导入时操作来导入正确的模块,同时保持 的用法不变。诀窍是检查 模块是否具有全局变量 。虽然这只是一个启发式的方法,但却是一个相当准确的方法:
最简单的情况是,某件事情需要运行一定的迭代次数(事先已知),而每一次迭代的时间都差不多。例如,有一个计算任何数字的平方根的算法,通过从 1 作为猜测值开始,然后计算出一个改进后的猜测值:
一点点的改进可以让你更加接近该平方根。例如,你可以计算 2 的平方根:
tqdm output
精确了到小数点后 10 位!
一个稍微复杂一点的例子是,当元素的数量是已知的,而处理每个元素需要类似的时间。例如,你可以计算一些数字的乘积。为此,你需要一些随机数:
现在有了这些数字,可以将它们相乘了。使用 最简单的方法是包装一个 Python 迭代函数。数值是一样的,但是 会显示一个进度条:
tqdm output
然而,并不是所有的事情都可以预测。最不容易预测的事情之一就是网络速度。当你下载一个大文件时,衡量进度的唯一方法就是检查已经下载了多少:
tqdm output
有时,“嵌套”进度条是有意义的。例如,如果你要下载一个目录,你就需要一个进度条来跟踪文件,并为每个文件设置一个进度条。
下面是一个例子(但没有实际下载一个目录):
tqdm output
所以,如果你的程序需要一段时间才能显示最终结果,为避免让你的用户感到沮丧。请显示它的进度!
via:http://opensource.com/article/20/12/tqdm-python
作者:Moshe Zadka选题:lujun9972译者:geekpi校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出
欢迎遵照 CC-BY-NC-SA 协议规定转载,
如需转载,请在文章下留言 “转载:公众号名称”。
我们将为您添加白名单,授权“转载文章时可以修改”,
可以修改版式,但不能修改文字和图片内容。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表