Python

Màu mè với ASCII Progress Bar

Xin chào, một progress bar trên terminal để hiển thị tiến trình cho những task tốn nhiều thời gian xử lý (chẳng hạn như bóc tách dữ liệu, training mô hình machine learning,…) sẽ làm cho công việc lập trình sinh động và thú vị hơn rất nhiều. Bài viết này sẽ giới thiệu về thư viện progressbar2 của Python.


THƯ VIỆN PROGRESSBAR2

+ Cài đặt thư viện:
$ python3 -m pip install progressbar2

+ Import thư viện:
import progressbar

+ Tạo một progress bar:
Để tạo một progress bar, chúng ta sử dụng method progressbar.ProgressBar:

pbar = progressbar.ProgressBar(maxval, widgets)

Trong đó:

  • maxval – giá trị tối đa mà progress bar sẽ biểu diễn;
  • widgets – một List các phần tử có trong progress bar.

+ Tạo widgets:
Các phần tử có trong progress bar thường bao gồm progressbar.Percentage, progressbar.Bar và progressbar.ETA.

widgets = [“Name: “, progressbar.Percentage(), ” “, progressbar.Bar(), ” “, progressbar.ETA()]

+ Khởi động progressbar:
pbar.start()

+ Update progressbar:
pbar.update(value)

+ Ngừng progressbar:
pbar.finish()


VÍ DỤ

Chúng ta sẽ lấy ví dụ về vòng lặp 100 giá trị, với thời gian delay giữa mỗi vòng lặp là 0.5 giây.

Example:

import progressbar
import time

widgets = ["Iterating: ", progressbar.Percentage(), " ", progressbar.Bar(), " ", progressbar.ETA()]
pbar = progressbar.ProgressBar(maxval=100, widgets=widgets)
pbar.start()

for i in range(100):
    pbar.update(i)
    time.sleep(0.5)
pbar.finish()

Ký tự mặc định của progressbar.Bar là # và chúng ta có thể đổi thành bất cứ ký tự nào nếu thích, ví dụ: progressbar.Bar(marker=”>”).

Output:

Capture


Reference:
[1] Source code for progressbar.widgets

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s