Hướng dẫn đầy đủ để sử dụng thanh tiến trình Python
Tất cả chúng ta đều đã từng gặp phải trường hợp mã của chúng ta mất một lúc để hoàn thành công việc. Tuy nhiên, khi làm việc với các tập dữ liệu lớn, ngay cả những thao tác đơn giản nhất cũng có thể mất hàng giờ để hoàn thành, khiến chúng ta phải vò đầu bứt tai và cầu nguyện rằng mã của chúng ta không bị vướng vào một vòng lặp vô tận nào đó. Rốt cuộc, một cái nồi được theo dõi không bao giờ sôi, và một vòng lặp được theo dõi không bao giờ được tháo ra. vòng lặp không bao giờ đứtkhông bao giờ phá vỡ
Tại sao nên sử dụng Thanh tiến trình trong Python?Trong Python, một thanh tiến trình có thể được sử dụng để hiển thị cho người dùng thời gian hoàn thành một thao tác hoặc để cho biết liệu mã có bị mắc kẹt trong một vòng lặp vô hạn hay đang hoàn thành tác vụ của nó hay không. Python có bốn thư viện có thể được sử dụng để tạo thanh tiến trình. Tiến trình, Progressbar2, tiến trình còn sống và tqdm Nếu bạn chưa đoán ra, tôi là một người rất thiếu kiên nhẫn, vì vậy việc sử dụng ETA hoặc thanh tiến trình trong khi chạy mã thực sự giúp tôi bình tĩnh lại Show
Trong hướng dẫn này, tôi sẽ giới thiệu bốn thư viện và so sánh chúng dựa trên các tiêu chí khác nhau. May mắn thay, có những thư viện cung cấp chức năng này chỉ bằng một vài dòng
Hướng dẫn cấu hình thanh tiến trình PythonHệ thống Python 3 đã được sử dụng để kiểm tra mã cho hướng dẫn này. 9 cài đặt. Trăn 3. 6. 9 đã cài đặt. Đây là cách bạn có thể tạo một môi trường ảo với tất cả các thư viện cần thiết để thử nghiệm, mà tôi rất muốn giới thiệu. môi trường ảo với tất cả các thư viện cần thiết để thử nghiệm. Đây là cách bạn có thể làm điều đó. _10Bốn thư viện mà chúng tôi sẽ sử dụng bao gồm những điều sau đây
13 Đoạn mã Python bạn cần biết để biết thêm thông tin 13 Đoạn mã Python bạn cần biết
Thanh tiến trình sử dụng tiến trìnhProgress là một thư viện khá đơn giản và thân thiện với người dùng, cung cấp nhiều kiểu để lựa chọn. Chúng ta hãy xem một số thanh tiến trình có thể được tích hợp vào các vòng lặp của chúng ta bằng cách sử dụng trình quản lý bối cảnh hoặc bằng cách gói một đối tượng có thể lặp lại vào một phương thức. thư viện. Nó cung cấp một loạt các phong cách để lựa chọn. Tất cả các thanh tiến trình có thể được tích hợp vào các vòng lặp của chúng tôi bằng cách sử dụng trình quản lý ngữ cảnh hoặc bằng cách gói một đối tượng có thể lặp lại vào một phương thức. Chúng ta hãy nhìn vào một số trong số họ. một thanh tiến trình đơn giản với dấu thăng ________Đầu tiênTrước khi tạo đối tượng của nó, trước tiên chúng ta nhập lớp bar từ tiến trình. mô-đun thanh. Chúng tôi sử dụng phương pháp 0 sẽ được thêm vào phía trước thanh tiến trình của chúng tôi. Để cập nhật thanh tiến trình, chúng tôi sử dụng phương thức 1 ở cuối mỗi lần lặp. Nguồn. Tác giảChúng tôi có sẵn nhiều đối số khác nhau, chẳng hạn như 2 . Hãy thử sửa đổi phần điền từ 3 . Hãy thử sửa đổi phần điền từ 4 thành 5 và cũng xem xét. 2Nguồn. Tác giảNguồn. tác giảTrong những tình huống mà chúng tôi không biết một thao tác sẽ mất bao lâu, thì có thể sử dụng công cụ quay vòng để trực quan hóa quy trình thay vì thanh tiến trình ______13Nguồn. Tác giảNguồn. tác giả
Thanh tiến trình Sử dụng Progressbar2Một mô-đun cực kỳ phổ biến và dễ sử dụng có tên là Python-Progressbar (còn được gọi là Progressbar2) cung cấp một số tính năng rất mạnh như tự động thay đổi kích thước. Giao diện của thanh tiến trình có thể được tùy chỉnh bằng cách sử dụng các tiện ích như "AbsoluteETA" và "AdaptiveETA". " Hãy xem xét một trường hợp sử dụng đơn giản 0Nguồn. Tác giảNguồn. tác giảThư viện sẽ được nhập dưới dạng thanh tiến trình mặc dù ban đầu chúng tôi đã cài đặt nó dưới dạng thanh tiến trình2
Kết hợp các thanh tiến trình với bản inChúng tôi đã không xem xét vấn đề này với thư viện tiến trình, nhưng điều gì sẽ xảy ra khi vòng lặp for có chức năng in trong đó? Hãy xem nào Như bạn có thể thấy, điều này sẽ dẫn đến một thanh tiến trình rất lộn xộn và đáng tiếc là thư viện tiến trình không đưa ra giải pháp. May mắn thay, Progressbar2 cho phép chúng tôi chuyển hướng đầu ra tiêu chuẩn. Tuy nhiên, Progressbar2 cho phép chúng tôi định tuyến lại đầu ra tiêu chuẩn cho điều này.Như bạn có thể thấy, điều này sẽ làm cho thanh tiến trình trở nên rất lộn xộn và đáng tiếc là không có cách giải quyết nào trong thư viện tiến trình cho việc này. Tuy nhiên, Progressbar2 cho phép chúng tôi chuyển hướng đầu ra tiêu chuẩn. 2Nguồn. Tác giảNguồn. tác giả
Sử dụng Alive-Progress để tạo thanh tiến trình hoạt hìnhThư viện này chứa một số thanh tiến trình đẹp nhất hiện có nếu bạn yêu thích hoạt ảnh và muốn làm cho thanh tiến trình của mình trông có tính tương tác. Nhìn này. thanh tiến trình đẹp nhất hiện có. Hãy xem. (Trái. Thanh tiến trình khả dụng, bên phải. AliveSpinners còn sống và đang trong quá trình phát triển (Nguồn. tài liệu)Tài liệu)) Chúng tôi sẽ trình bày một thanh tiến trình mặc định, và sau đó là một thanh tiến trình có một số sửa đổi, vì mã hóa khá giống nhau 3Nguồn. Tác giảNguồn. tác giảTài liệu Github bao gồm thông tin về một số tính năng thực sự mạnh mẽ mà thư viện này có, như bạn có thể thấy ở trên, nơi chúng tôi nhận thông tin về ETA và số lần lặp lại mỗi giây cùng với thanh tiến trình. Tài liệu Github bao gồm thông tin chi tiết về một số tính năng thực sự mạnh mẽ mà thư viện này có.
Thanh tiến trình trongTQDMKhông có gì khác ngoài TQDM để có một thanh tiến trình không nhảm nhí, nhanh chóng nhưng mạnh mẽ Ngay cả với tất cả các tính năng, TQDM vẫn rất dễ cài đặt và cung cấp một khung nhanh chóng với nhiều tùy chỉnh và thông tin. Hãy xem 4Nguồn. Tác giảNguồn. tác giảTQDM hoạt động trên tất cả các nền tảng chính như Linux, Windows và Mac và theo mặc định, bạn nhận được thông tin như tỷ lệ phần trăm, ETA và thậm chí cả số lần lặp mỗi giây. Tất cả các máy tính xách tay GUI, bảng điều khiển và thậm chí cả IPython/Jupyter đều có thể sử dụng nó mà không gặp sự cố nào. giao diện người dùng đồ họa (GUI) và thậm chí trong IPython/sổ ghi chép Jupyter. Mô-đun con 6 . Hãy lấy một ví dụ với các thanh tiến trình lồng nhau. Nguồn. tqdm GithubRiêng TQDM có tính năng này với nhiều thanh tiến trình Cũng có tích hợp với Pandas. Tích hợp gấu trúc. 6Nguồn. Tác giảNguồn. tác giảNgoài ra, TQDM có một biến thể GUI thử nghiệm được gọi là tqdm-gui. tqdm-gui. Đối với những người làm việc trong lĩnh vực khoa học dữ liệu, TQDM là một dự án rất quan trọng. là một dự án cực kỳ quan trọng đối với các cá nhân làm việc trong lĩnh vực khoa học dữ liệu. Thông tin thêm về Python. Không tìm thấy lệnh PIP của Windows Hướng dẫn Không tìm thấy lệnh PIP trên Windows. Hướng dẫn
Ưu điểm của thanh tiến trìnhThanh tiến độ cung cấp cho chúng tôi
ProgressBar2 nổi tiếng có tổng chi phí là 800 ns/lần lặp, trong khi TQDM có chi phí thấp nhất trong tất cả các thư viện được thảo luận ở trên vào khoảng 60 ns/lần lặp Phần lớn các thư viện này là độc lập Các câu lệnh in được hỗ trợ chính thức cùng với thanh tiến trình bởi cả Progressbar2 và live-progress. hỗ trợ in câu lệnh cùng với thanh tiến trình. Trong hướng dẫn này, chúng ta đã học cách thêm thanh tiến trình vào tập lệnh Python của bạn chỉ bằng một vài dòng mã Tất cả chúng ta đã ở đó. Mã của chúng tôi đang chạy một công việc và sẽ mất một lúc. Vò đầu bứt tai, chúng tôi cầu nguyện rằng mã của chúng tôi không bị mắc kẹt trong một vòng quay vô tận nào đó. Khi xử lý các tập dữ liệu lớn, ngay cả những thao tác đơn giản nhất cũng có thể mất hàng giờ
Nếu bạn chưa đoán ra, tôi là một người thiếu kiên nhẫn. Có một ETA hoặc Progress Bar có tác dụng kỳ diệu đối với sự lo lắng của tôi May mắn thay, có những thư viện cung cấp chức năng này chỉ bằng một vài dòng. Trong hướng dẫn này, tôi sẽ giới thiệu bốn thư viện như vậy và so sánh chúng dựa trên nhiều yếu tố Thành lập Mã được sử dụng trong hướng dẫn này đã được thử nghiệm trên hệ thống Ubuntu với Python 3. 6. 9 cài đặt Tôi thực sự khuyên bạn nên thiết lập một môi trường ảo với tất cả các thư viện cần thiết để thử nghiệm. Đây là cách bạn có thể làm điều đó 1Bốn thư viện mà chúng ta sẽ làm việc với. tiến độ, thanh tiến trình 2, tiến độ sống, tqdm Các loại thanh từ ProgressBar (Nguồn. Tài liệu Github)# Tiến triển Progress là một thư viện khá đơn giản và trực quan. Nó cung cấp một loạt các phong cách để lựa chọn. Tất cả các thanh tiến trình có thể được tích hợp vào các vòng lặp của chúng tôi bằng cách sử dụng Trình quản lý ngữ cảnh hoặc bằng cách gói một đối tượng có thể lặp lại vào một phương thức. Chúng ta hãy nhìn vào một số trong số họ Một thanh tiến trình đơn giản chứa đầy hàm băm Trước tiên, chúng tôi nhập lớp Bar từ tiến trình. mô-đun thanh và tạo đối tượng của nó. Chúng tôi cung cấp tiền tố 2 sẽ được thêm vào phía trước thanh tiến trình của chúng tôi. Để cập nhật thanh tiến trình, chúng tôi sử dụng phương pháp 3 ở cuối mỗi lần lặpNguồn. Tác giảCó nhiều đối số có sẵn cho chúng tôi như 4 và 5. Bạn có thể tìm thấy thông tin chi tiết về họ ở đây. Hãy thử sửa đổi phần điền từ 6 thành 7 và cũng xem ETACó những lúc chúng tôi không biết ca phẫu thuật sẽ kéo dài bao lâu. Trong những trường hợp như vậy, chúng ta có thể sử dụng Spinners để trực quan hóa quá trình xử lý thay vì thanh tiến trình Nguồn. Tác giảĐọc thêm về Progress tại đây. Mã nguồn # Thanh tiến trình2 Python-Progressbar (còn gọi là Progressbar2) là một mô-đun cực kỳ phổ biến và dễ sử dụng. Nó cung cấp một số tính năng rất mạnh mẽ như tự động thay đổi kích thước khi hệ thống hỗ trợ. Bạn có thể kiểm soát định dạng của thanh tiến trình ở dạng tiện ích con như AbsoluteETA, AdaptiveETA, v.v. Hãy xem xét một trường hợp sử dụng cơ bản Nguồn. Tác giả
Kết hợp các thanh tiến trình với đầu ra inMột điều mà chúng tôi đã không thảo luận trước đó với thư viện tiến độ. Điều gì xảy ra khi vòng lặp for chứa chức năng in? Như bạn có thể thấy, điều này sẽ làm cho thanh tiến trình trở nên rất lộn xộn và đáng tiếc là không có cách giải quyết nào trong thư viện tiến trình cho vấn đề này. Tuy nhiên, Progressbar2 cho phép chúng tôi chuyển hướng đầu ra tiêu chuẩn Nguồn. Tác giảĐừng quên kiểm tra tất cả các tính năng thú vị có sẵn trong ProgressBar2 tại đây # Alive-Tiến bộ Nếu bạn yêu thích hoạt ảnh và bạn muốn làm cho thanh tiến trình của mình trông có tính tương tác, thì hãy nhìn xa hơn. Thư viện này chứa một số thanh tiến trình đẹp nhất hiện có. Hãy xem Bên trái. Alive-Progress Thanh tiến trình có sẵn, bên phải. Các Spinner có sẵn của Alive-Progress (Nguồn. Tài liệu)Về mã, nó khá giống nhau. Chúng tôi sẽ trình bày một thanh tiến trình mặc định và sau đó là một thanh có một vài sửa đổi Như bạn có thể thấy ở trên, chúng tôi nhận được thông tin về ETA và số lần lặp lại mỗi giây cùng với thanh tiến trình. Tài liệu Github bao gồm các chi tiết liên quan đến một số tính năng thực sự mạnh mẽ mà thư viện này có # TQDM Nếu bạn cần một thanh tiến trình nhanh nhưng mạnh mẽ, không cần tìm đâu xa TQDM cung cấp một khung nhanh với nhiều tùy chỉnh và thông tin. Ngay cả với tất cả các tính năng, nó vẫn cực kỳ đơn giản để thiết lập. Hãy xem Nguồn. Tác giảTheo mặc định, bạn nhận được thông tin như tỷ lệ phần trăm, ETA và thậm chí cả số lần lặp lại mỗi giây. TQDM hoạt động trên tất cả các nền tảng chính như Linux, Windows và Mac. Nó tích hợp liền mạch trong bảng điều khiển, GUI và thậm chí trong sổ ghi chép IPython/Jupyter IPython/Jupyter được hỗ trợ thông qua mô-đun phụ 8. Hãy lấy một ví dụ với các thanh tiến trình lồng nhauNguồn. tqdm Github
Ngoài ra còn có tích hợp gấu trúc,
TQDM là một dự án cực kỳ quan trọng đối với các cá nhân làm việc trong Khoa học dữ liệu. Bạn có thể đọc thêm về nó ở đây. Tài liệu Từ cuối cùng Thanh tiến độ cung cấp cho chúng tôi
TQDM có chi phí thấp nhất trong số tất cả các thư viện được thảo luận ở trên với tốc độ khoảng 60ns mỗi lần lặp. Để so sánh, ProgressBar2 được thiết lập tốt có chi phí hoạt động 800ns/lần lặp Hầu hết các thư viện này không có bất kỳ phụ thuộc nào Progressbar2 và live-progress chính thức hỗ trợ các câu lệnh in cùng với thanh tiến trình Trong hướng dẫn này, chúng ta đã thấy cách chỉ với một vài dòng mã, bạn có thể triển khai các thanh tiến trình trong tập lệnh python của mình. Hy vọng bạn tìm thấy điều này hữu ích Làm cách nào để sử dụng thanh tiến trình trong Python?Các bước để tạo Thanh tiến trình trong Python . Bước 1. Cài đặt gói tqdm. Để bắt đầu, hãy cài đặt gói tqdm bằng cú pháp này. pip cài đặt tqdm. . Bước 2. Viết mã Python. Hãy viết một mã Python đơn giản để. . Bước 3. Tạo thanh tiến trình trong Python. . Bước 4 (tùy chọn). Thêm GUI để theo dõi tiến trình của bạn Làm thế nào để bạn sử dụng một thanh tiến trình?Trong android có một lớp tên là ProgressDialog cho phép bạn tạo thanh tiến trình. Để làm điều này, bạn cần khởi tạo một đối tượng của lớp này. Cú pháp của nó là. Tiến trình ProgressDialog = new ProgressDialog(this);
Thanh tiến trình trong Python là gì?Giới thiệu về thanh Tiến trình Python. Thanh tiến trình là phần tử điều khiển đồ họa hiển thị trạng thái của một quá trình máy tính đang chạy trong thời gian dài như tải xuống, truyền tệp hoặc cài đặt . Một bản trình bày tiến độ bằng văn bản ở định dạng phần trăm đôi khi được bao gồm trong hình ảnh trực quan.
|