探索 Console 進度條的實現方式
我常常看到指令執行時可以做出進度條效果。雖然裝了 Python 的其他套件就可以做出來,但我這邊找到了一種原生 Console 的做法。我覺得這很有趣,所以特別記錄下來。
相關文章
- [Python] Terminal 進度條 Progress Percentage - 這篇文章提供了一種 Python 在終端機中實現進度條的方法,並且有詳細的程式碼和解釋。
他使用\r
來時做動態進度條效果。
|
|
- 用python实现的又一个Console下的进度条-阿里云开发者社区 - 這篇文章設計一個 Class 實作進度條方法。
- Python 3 简易实现命令行进度条 - 知乎 - 這篇文章簡單地解釋了如何在 Python 3 中實現命令行進度條。
|
|
使用案例
|
|
输出效果:
|
|
- Python实现实时显示进度条的六种方法_python_脚本之家 - 這篇文章提供了六種不同的方法來實現實時顯示進度條,對於需要多種選擇的讀者來說非常有用。
- tqdm
- alive_progress
- PySimpleGUI
- progressbar
原生 Console 處理(簡單實現)
在這篇文章 Python实现实时显示进度条的六种方法_python_脚本之家 中,我發現了一種使用單純的 print \r
就能實現進度條的方法。這讓我想到,我可以嘗試使用 Bash 來實現這個功能。我參考了 Stack Overflow 上的這個問題 bash - How to show and update echo on same line 來學習如何在同一行上更新文本。
以下是我參考腳本:
|
|
重點是\r
,它可以將輸入位置移動到行首,使得進度條能在同一行更新。因此,每個程式語言只要能夠輸出這個符號,就可以實現這種進度條的效果。
我在 Stack Overflow 上找到了一個相關的問題 bash - How to add a progress bar to a shell script? - Stack Overflow,以下是問題中的一個解答:
|
|
番外 pv 指令
在這篇 Stack Overflow 的問答 bash - How to add a progress bar to a shell script? - Stack Overflow 中,我發現了 pv
指令,這是一個可以監視管道命令的進度的工具,我覺得這個功能非常神奇。這個問答中還提到了許多 pv
的實用方式。
然而,實務上 pv
指令需要搭配 pipeline 檔案來使用,這可能會限制它的實用性。不過,我會考慮在使用 dd
指令時嘗試使用 pv
,儘管我最近很少需要進行這種操作。
Bing AI 查詢內容
您好,這是 Bing。我可以幫您什麼?😊
根據網路搜尋結果,Python console 進度條有哪些好用套件,有以下幾個選項:
- tqdm:一個快速、可擴展的 Python 和 CLI 進度條庫,可以輕鬆地將任何可迭代的物件包裝成一個智能的進度條¹²。
- alive-progress:一個新穎的進度條庫,可以顯示吞吐量和預計完成時間,甚至可以暫停,並有很酷的動畫效果¹。
- progressbar2:一個簡單而靈活的進度條庫,可以自定義進度條的外觀和行為³。
您可以根據您的需求和喜好選擇其中一個套件來使用。希望這對您有幫助。👍
來源: 與 Bing 的交談, 2023/6/5(1) Python Progress Bar - Stack Overflow. https://stackoverflow.com/questions/3160699/python-progress-bar 已存取 2023/6/5.
(2) GitHub - tqdm/tqdm: A Fast, Extensible Progress Bar for Python and CLI. https://github.com/tqdm/tqdm 已存取 2023/6/5.
(3) Python Progress Bars: TQDM, Alive-Progress, and Progressbar2. https://datagy.io/python-progress-bars/ 已存取 2023/6/5.