首页 > 解决方案 > 如何在 Python 中漂亮地打印经过时间/ETA?

问题描述

我以秒为单位测量程序的运行时间。根据我输入的数据量,这可能需要几毫秒到几天的时间。是否有 Python 模块可用于将秒数转换为最有用的单位并显示?近似值很好。

例如, 50 应该变成50 seconds, 590 应该变成10 minutes100000应该变成1 day或类似的东西。我可以自己写基本的东西,但我相信人们比我考虑的更多,并且考虑了许多我在 1000 年内不会想到的边缘情况 :)

编辑:我注意到tqdm必须有一些与之相关的逻辑,因为它相应地选择了 ETA 字符串的长度。相比

for _ in tqdm.tqdm(range(10)): time.sleep(1)

for _ in tqdm.tqdm(range(100000)): time.sleep(1)

编辑:我也找到了这个要点,但我更喜欢至少有一些维护的代码:) https://gist.github.com/alexwlchan/73933442112f5ae431cc

标签: pythonelapsedtime

解决方案


如果您愿意,请关闭问题,humanize.naturaldelta答案是:

这个适度的软件包包含各种常见的人性化实用程序,例如将数字转换为人类可读的模糊持续时间(“3 分钟前”)或人类可读的大小或吞吐量。它适用于 python 2.7 和 3.3,并已本地化为俄语、法语、韩语和斯洛伐克语。

https://github.com/jmoiron/humanize


推荐阅读