[英]How to pretty-print elapsed times/ETAs in Python?
我正在測量程序的運行時間(以秒為單位)。 根據我輸入的數據量,這可能需要幾毫秒到幾天的時間。 是否可以使用Python模塊將秒數轉換為最有用的單位並顯示? 近似值很好。
例如,50應該變成50 seconds
,590應該變成10 minutes
, 100000
應該變成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一起使用,並且本地化為俄語,法語,韓語和斯洛伐克語。
我剛發現箭 :
Arrow是一個Python庫,它提供了一種明智且人性化的方法來創建,處理,格式化和轉換日期,時間和時間戳。
它也具有humanize(),並且維護得更好,看來: https : //arrow.readthedocs.io/en/latest/#humanize
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.