簡體   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