Các ví dụ phong phú về Python
Gần đây, tôi đang thực hiện một dự án mà tôi cần in đẹp một số dữ liệu trên bảng điều khiển. Đó là cách tôi phát hiện ra Rich, một thư viện Python dành cho văn bản có định dạng phong phú và đẹp mắt trong thiết bị đầu cuối Show Trong câu chuyện này, tôi sẽ chỉ cho bạn một số tính năng của thư viện này và cách bạn có thể sử dụng nó trong các dự án của mình RIch là gói python để tạo một số định dạng và ghi nhật ký thiết bị đầu cuối tuyệt vời. Nó có một số tính năng và chức năng có thể làm cho ứng dụng của bạn trông đẹp hơn và thậm chí thêm giao diện mới cho ứng dụng CLI của bạn. Chúng ta sẽ tìm hiểu quá trình cài đặt và cách sử dụng cơ bản của gói RICH trong Python trong bài viết này Cài đặt phong phúRich là một package của python nên chúng ta có thể cài đặt nó bằng lệnh pip, bạn có thể trực tiếp dùng lệnh pip install để cài đặt rich nhưng nếu bạn không muốn làm rối tung môi trường global python của mình thì có thể dùng virtualenv để thử. . Vì vậy, trước tiên chúng ta sẽ thiết lập một môi trường ảo với gói virtualenv Thiết lập môi trường ảoĐể thiết lập môi trường ảo, hãy làm theo quy trình được giải thích trong bài viết Tạo môi trường ảo bằng venv Để thiết lập một môi trường ảo mới, bạn cần gói virtualenv, vì vậy hãy cài đặt gói này trên toàn cầu bằng lệnh pip install virtualenv
Điều này sẽ cài đặt virtualenv trên môi trường python toàn cầu của bạn, vì vậy giờ đây chúng tôi có thể tạo một môi trường ảo ở bất kỳ đâu trên hệ thống của chúng tôi. Để tạo một môi trường ảo, chúng ta sẽ sử dụng lệnh virtualenv kèm theo tên của môi trường ảo. Đảm bảo ở vị trí mong muốn trên hệ thống của bạn, lệnh bên dưới sẽ tạo một thư mục ở vị trí hiện tại virtualenv venv
Vì vậy, điều này sẽ tạo ra một môi trường ảo mới trong thư mục của bạn, chúng tôi cũng cần kích hoạt môi trường ảo. Để kích hoạt môi trường ảo, bạn cần thực thi một tệp có tên kích hoạt tùy thuộc vào Hệ điều hành của bạn Đối với Linux/macOS source venv/bin/activate
Vì vậy, đây là tất cả những gì chúng ta cần để tạo một môi trường ảo, bây giờ chúng ta có thể cài đặt bất kỳ gói python nào trong môi trường được kích hoạt này Sử dụng pip để cài đặt phong phúBây giờ chúng ta có thể cài đặt bất kỳ gói nào trong môi trường ảo được kích hoạt một cách an toàn, để cài đặt phong phú, chúng ta cần chạy lệnh sau pip install rich
Điều này sẽ cài đặt phong phú, đó là gói python. Để xác minh quá trình cài đặt đã thành công, bạn có thể chạy lệnh sau với sự trợ giúp của lệnh python -m theo sau là tên gói trong trường hợp này là Rich python -m rich
Tạo một Python Script để chứng minh RichBây giờ, vì chúng tôi đã cài đặt gói phong phú trong môi trường ảo, nên chúng tôi có thể sử dụng gói phong phú trong tập lệnh python và tận dụng các kiểu định dạng và ghi nhật ký của nó trong I/O đầu cuối. Trước tiên, chúng ta sẽ tạo tập lệnh từ hello trong python và minh họa một vài hàm và toán tử khác do gói phong phú cung cấp Python3pip install rich41 pip install rich42____343 pip install rich44
pip install rich44 virtualenv venv1 virtualenv venv2 virtualenv venv3
Ở đây, chúng tôi đang nhập một chức năng có tên là in từ gói phong phú mà chúng tôi vừa cài đặt. Chức năng in khác với chức năng in thông thường do python cung cấp. Mặc dù về mặt kỹ thuật, nó phục vụ cùng một mục đích nhưng nó có thể làm được nhiều việc hơn chức năng in thông thường. Trong ví dụ trên, chức năng in có một số nội dung được viết được python hiểu là kiểu định dạng như [xanh đậm] và [/ xanh đậm]. Hai thẻ này chỉ đại diện cho điểm bắt đầu và kết thúc của kiểu dáng được cung cấp trong dấu ngoặc vuông. Các kiểu được cung cấp trong ví dụ này là đậm và xanh lục. Bạn có thể chọn một vài tùy chọn để trang trí văn bản như cung cấp bên dưới Có thể chọn màu từ danh sách được cung cấp trong tài liệu có liên kết này, màu là 256 Màu tiêu chuẩn cùng với định dạng màu theo kiểu CSS. Các trang trí như đậm, nghiêng, gạch chân, gạch chân, đảo ngược, v.v. có thể được cung cấp trong danh sách từ tài liệu. Tạo một màn hình nhiệm vụ thông tinPython3pip install rich41 virtualenv venv5 pip install rich43 virtualenv venv7 pip install rich41 virtualenv venv9 pip install rich43 source venv/bin/activate1
source venv/bin/activate2____23 source venv/bin/activate4 source venv/bin/activate5 source venv/bin/activate3 source venv/bin/activate7 source venv/bin/activate8 source venv/bin/activate9 pip install rich0 pip install rich1 pip install rich2 virtualenv venv1 pip install rich4 pip install rich5 pip install rich6 pip install rich7
pip install rich8 pip install rich9 virtualenv venv3 python -m rich1 python -m rich2 python -m rich3 python -m rich4 python -m rich5 python -m rich6 source venv/bin/activate3 python -m rich8 python -m rich9 virtualenv venv3 python -m rich5 python -m rich22____34 virtualenv venv3 python -m rich5 python -m rich26____427 virtualenv venv3
Ví dụ trên cho thấy quá trình hiển thị các tác vụ khác nhau trong một vòng lặp. Điều này được thực hiện với Console Wrapper API. Lớp Console cung cấp một số chức năng mở rộng dành riêng cho nội dung đầu cuối. Vì vậy, chúng tôi khởi tạo một đối tượng Console và sử dụng phương thức log để hiển thị đầu ra. Phương thức trạng thái được sử dụng để hiển thị quá trình đang diễn ra khi đang ở trong vòng lặp. Để biết thêm các tùy chọn và chức năng trong lớp Console, bạn có thể tham khảo tài liệu của thư viện Rich. Bàn trong Terminal với RichChúng tôi thậm chí có thể hiển thị các bảng ở định dạng phong phú với gói phong phú. Gói phong phú có cách biểu diễn dữ liệu dạng bảng trong thiết bị đầu cuối với lớp Bảng. Chúng ta có thể xây dựng một vài bảng mẫu để hiểu các nguyên tắc cơ bản của việc hiển thị dữ liệu dạng bảng cho bảng điều khiển Python3pip install rich41 pip install rich410 pip install rich43 pip install rich412 pip install rich41 virtualenv venv9 pip install rich43 source venv/bin/activate1 pip install rich41 pip install rich418______343 pip install rich420 pip install rich41 pip install rich422______343 pip install rich424
pip install rich425 source venv/bin/activate3 pip install rich427 _______42____3427 python -m rich5 pip install rich431____35 python -m rich5 pip install rich434 pip install rich5 python -m rich5 pip install rich437____35 python -m rich5 pip install rich440 pip install rich5 _______42____3443 _______42____3427 python -m rich5 pip install rich447 pip install rich5 python -m rich5 virtualenv venv00______35 python -m rich5 pip install rich437____35 python -m rich5 virtualenv venv06 pip install rich5 _______42____3443 _______42____3427 _______45____113____35 _______45____116____35 python -m rich5 pip install rich437____35 _______45____122____35 _______42____3443 _______42____3427 _______45____129____35 python -m rich5____132____35 python -m rich5 pip install rich437____35 python -m rich5 virtualenv venv38 pip install rich5 _______42____3443 virtualenv venv42
source venv/bin/activate2____23 source venv/bin/activate4
virtualenv venv46 source venv/bin/activate3 virtualenv venv48 source venv/bin/activate3 virtualenv venv50 virtualenv venv3 virtualenv venv52 source venv/bin/activate3 virtualenv venv54
virtualenv venv55
virtualenv venv56____23 virtualenv venv58 virtualenv venv59 virtualenv venv60 source venv/bin/activate3 virtualenv venv50 virtualenv venv63 python -m rich2 virtualenv venv65 virtualenv venv66 virtualenv venv67 source venv/bin/activate3 virtualenv venv69 virtualenv venv3 python -m rich2 virtualenv venv65 virtualenv venv73 virtualenv venv67 source venv/bin/activate3 virtualenv venv69 virtualenv venv3 python -m rich2 virtualenv venv65 virtualenv venv80 virtualenv venv67 source venv/bin/activate3 virtualenv venv69 virtualenv venv3 python -m rich2 virtualenv venv65 virtualenv venv87 virtualenv venv67 source venv/bin/activate3 virtualenv venv69 virtualenv venv3 python -m rich2 source venv/bin/activate9 virtualenv venv94 pip install rich1 virtualenv venv96 python -m rich5 virtualenv venv98 virtualenv venv99 source venv/bin/activate00
python -m rich2 source venv/bin/activate02____23 source venv/bin/activate04
python -m rich2 source venv/bin/activate06____23 source venv/bin/activate08
Vì vậy, ở đây chúng tôi tạo một đối tượng bảng với các điều chỉnh ban đầu như chân trang và căn chỉnh. Dữ liệu đầu tiên được lưu trữ dưới dạng danh sách python, nghĩa là bạn có thể thêm hoặc chỉnh sửa dữ liệu trong chính nó. Bằng cách sử dụng hàm Live, chúng ta có thể tạo một bảng trong thời gian chạy bằng cách tự động thêm các giá trị cột và hàng bằng các hàm add_column và add_row trong lớp bảng Các hàng hoặc dữ liệu thực tế được thêm vào sau khi chèn các cột vào dữ liệu, bằng cách lặp lại các giá trị được xác định trước đó từ danh sách TABLE_DATA, chúng ta có thể phân tích cú pháp toàn bộ cột dữ liệu hàng. Chức năng Hiển thị trực tiếp được sử dụng để hiển thị cấu trúc thời gian thực của nhật ký thiết bị đầu cuối và giúp hiển thị tập lệnh. Chúng tôi thậm chí có thể sử dụng tùy chọn của bảng điều khiển để chỉ cần in bảng thay vì hiển thị bảng trực tiếp bằng bảng điều khiển. chức năng nhật ký
Kết xuất tệp MarkdownChúng tôi thậm chí có thể hiển thị nội dung đánh dấu trong thiết bị đầu cuối bằng tiện ích mở rộng đánh dấu đơn giản trong thư viện phong phú trong python. Ở đây chúng tôi sẽ sử dụng một tệp đánh dấu đơn giản để chứng minh hoạt động của kết xuất đánh dấu phong phú. Mẫu mã nguồn được cung cấp trong tài liệu và ở đây chúng tôi cần thực hiện một số thay đổi để mã nguồn hoạt động Python3pip install rich41 virtualenv venv9 pip install rich43 source venv/bin/activate1 pip install rich41 source venv/bin/activate14______343 source venv/bin/activate16
source venv/bin/activate2____23 source venv/bin/activate4 source venv/bin/activate20 source venv/bin/activate21____11 source venv/bin/activate23 source venv/bin/activate24 python -m rich2 source venv/bin/activate26____23 source venv/bin/activate28 source venv/bin/activate29____344 source venv/bin/activate31 Một tệp đánh dấu mẫu đã được cung cấp bên dưới vật mẫu. md python -m rich2 đầu ra
Ở đây, chúng ta sẽ khởi tạo lớp console vì đầu ra sẽ nằm trên terminal/console. Sau đó, chúng tôi có thể mở tệp đánh dấu trong kho lưu trữ cục bộ và phân tích cú pháp tệp đó trong hàm Markdown sẽ hiển thị nội dung và sau khi đọc nội dung của tệp, chúng tôi có thể in nội dung được hiển thị trong bảng điều khiển. cây trong phúChúng ta cũng có thể tạo cấu trúc dạng cây trong thiết bị đầu cuối bằng cách sử dụng Rich. Có một lớp cây trong Rich để hiển thị các cấu trúc phân cấp trong thiết bị đầu cuối, chúng ta có thể tạo một thể hiện cây đơn giản bằng cách sử dụng lớp cây phong phú Python3pip install rich41 source venv/bin/activate33______343 source venv/bin/activate35 pip install rich41 pip install rich42____343 pip install rich44
source venv/bin/activate40 source venv/bin/activate3 source venv/bin/activate42 source venv/bin/activate43 virtualenv venv3 source venv/bin/activate45 source venv/bin/activate46 virtualenv venv3 pip install rich44 source venv/bin/activate49 đầu ra
Lớp cây được khởi tạo bằng phương thức Cây được nhập từ người giàu. mô-đun cây. Điều này tạo ra một nút gốc đơn giản trong cây, hơn nữa, chúng ta có thể thêm nút vào cây bằng cách sử dụng chức năng thêm được liên kết với cây. Sử dụng mã đơn giản này, chúng ta có thể tạo nhiều kiểu cây hơn bằng cách sử dụng lớp console ở định dạng phong phú. Python3source venv/bin/activate50 pip install rich41 virtualenv venv9 pip install rich43 source venv/bin/activate1 pip install rich41 source venv/bin/activate33______343 source venv/bin/activate35
source venv/bin/activate2______23 source venv/bin/activate61____23 source venv/bin/activate63 virtualenv venv3
source venv/bin/activate65 source venv/bin/activate3 source venv/bin/activate42 source venv/bin/activate68 virtualenv venv3
source venv/bin/activate70 source venv/bin/activate3 source venv/bin/activate72 source venv/bin/activate73 virtualenv venv3 source venv/bin/activate75 source venv/bin/activate76 virtualenv venv3 source venv/bin/activate75 source venv/bin/activate79 virtualenv venv3 source venv/bin/activate75 source venv/bin/activate82 virtualenv venv3 source venv/bin/activate75 source venv/bin/activate85____13
source venv/bin/activate87 source venv/bin/activate3 source venv/bin/activate72 source venv/bin/activate90 virtualenv venv3 source venv/bin/activate92____293____13 source venv/bin/activate92____296____13
source venv/bin/activate98 source venv/bin/activate3 pip install rich427 pip install rich01 pip install rich5 pip install rich03 pip install rich5 pip install rich05 pip install rich5 pip install rich07 pip install rich5 pip install rich09 virtualenv venv42 pip install rich11 source venv/bin/activate3 source venv/bin/activate72______314 virtualenv venv3 source venv/bin/activate9 pip install rich17 pip install rich1 pip install rich19 _______42____321
source venv/bin/activate29____344 pip install rich24
pip install rich25 source venv/bin/activate3 pip install rich27 pip install rich28 pip install rich29 đầu ra
Vì vậy, trong ví dụ này, chúng tôi đã sử dụng lớp console, bằng cách thêm các tham số như chiều rộng sẽ đặt chiều rộng của bảng điều khiển và chiều rộng của màn hình đầu ra. Tiếp theo, chúng ta sẽ khởi tạo một lớp cây để tạo một đối tượng cây và lưu trữ nó trong biến cây, chúng ta có thể đặt tên cho nó là bất cứ thứ gì chúng ta muốn như chúng ta đã đặt tên cho nó là example_tree trong ví dụ trước. Như đã trình bày trước đó, chúng tôi có thể thêm các nút vào cây, chúng tôi sẽ thêm nút dưới dạng một cây mới, vì vậy chúng tôi sẽ tạo các cây lồng nhau. Bằng cách gán giá trị trả về của hàm add cho biến cây, chúng ta đã thêm một nút mới, chúng ta có thể thêm các nút khác Ở đây, biến cây là cây gốc có các nút như Python, Java và Javascript với các thể hiện của lớp cây là python_tree, java_tree và js_tree. Chúng tôi đã tạo python_tree với các nút như Numpy, Pandas và Django. Java_tree có các nút như Spring và Apache, và cuối cùng, chúng tôi có các nút js_tree dưới dạng danh sách các chuỗi mà chúng tôi nối thêm động bằng cách sử dụng vòng lặp for. Đối với mỗi phần tử trong danh sách “khung công tác”, chúng tôi thêm các nút trong js_tree Đó là cách chúng ta có thể sử dụng lớp cây phong phú Thanh tiến độ trong phong phúChúng tôi thậm chí có thể thêm các thanh tiến trình trong thiết bị đầu cuối bằng cách sử dụng phong phú. Người giàu cũng cung cấp một lớp để hiển thị các thanh tiến trình bằng cách sử dụng lớp theo dõi. Lớp theo dõi cung cấp chế độ xem các thanh tiến trình cho đến khi vòng lặp hoàn tất và tác vụ đã cho đạt 100%. Python3pip install rich41 pip install rich31 pip install rich43 pip install rich33 pip install rich41 virtualenv venv5 pip install rich43 virtualenv venv7
source venv/bin/activate9 pip install rich39 pip install rich1 pip install rich41____32 virtualenv venv1 pip install rich44 pip install rich45 _______42____422____34 virtualenv venv3 đầu ra
Ở đây, chúng tôi đã minh họa một ví dụ cơ bản về một thanh tiến trình đơn giản cho một vòng lặp lặp lại trong phạm vi 10 số và nó ngủ trong một giây, do đó chúng ta thấy sự chuyển tiếp của thanh tiến trình. Chúng tôi thậm chí có thể thực hiện tác vụ không đồng bộ và hiển thị thanh tiến trình bằng cách hiển thị tiến trình yêu Python3pip install rich43 virtualenv venv5
pip install rich41 pip install rich31 pip install rich43 pip install rich55
pip install rich56
python -m rich2 pip install rich58 source venv/bin/activate3 pip install rich60 pip install rich61 pip install rich62 source venv/bin/activate3 source venv/bin/activate63 virtualenv venv3 python -m rich2 pip install rich67 source venv/bin/activate3 pip install rich60 pip install rich70 pip install rich62 source venv/bin/activate3 pip install rich73 virtualenv venv3 python -m rich2 pip install rich76 source venv/bin/activate3 pip install rich60 pip install rich79 pip install rich62 source venv/bin/activate3 pip install rich82 virtualenv venv3
python -m rich2 python -m rich3 pip install rich86 pip install rich87 python -m rich5 pip install rich89 source venv/bin/activate3 pip install rich91 virtualenv venv3 python -m rich5 pip install rich94 source venv/bin/activate3 pip install rich96 virtualenv venv3 python -m rich5 pip install rich99 source venv/bin/activate3 python -m rich01 virtualenv venv3 python -m rich5 python -m rich04____405 virtualenv venv3 đầu ra
Để hiển thị một vài thanh tiến trình trên thiết bị đầu cuối, chúng ta có thể thêm sử dụng chức năng Tiến trình trong lớp tiến trình. Chúng tôi thêm các tác vụ là các thanh tiến trình riêng lẻ và chúng tôi tăng tiến trình hiện tại, chúng tôi đã bao gồm vòng lặp while để chúng tôi tăng và thực hiện bất kỳ thao tác nào cho đến khi thanh tiến trình hoàn thành Thanh tiến trình được tăng lên sau khi tác vụ đã được thực hiện ở đây tác vụ chỉ đơn giản là ngủ trong một phần giây nhưng đó có thể là bất kỳ thao tác nào như tìm nạp tài nguyên từ internet hoặc bất kỳ thao tác logic nào khác trong chương trình Ở đây, chúng tôi đã thêm tham số tổng trong lớp tiến trình. Lớp tiến trình sẽ được hiển thị và tác vụ được thêm vào bởi hàm add_task có thêm thanh tiến trình trong bảng điều khiển. Hàm thêm nhiệm vụ nhận tham số tên nhiệm vụ và tổng số cho biết số bước phải hoàn thành để tiến độ đạt 100% |