繁体   English   中英

如何在Python中漂亮地打印经过时间/ ETA?

[英]How to pretty-print elapsed times/ETAs in Python?

我正在测量程序的运行时间(以秒为单位)。 根据我输入的数据量,这可能需要几毫秒到几天的时间。 是否可以使用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

如果需要,请关闭问题, humanize.naturaldelta是答案:

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

https://github.com/jmoiron/humanize

我刚发现

Arrow是一个Python库,它提供了一种明智且人性化的方法来创建,处理,格式化和转换日期,时间和时间戳。

它也具有humanize(),并且维护得更好,看来: https : //arrow.readthedocs.io/en/latest/#humanize

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM