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
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 Rich
Bâ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
Python3
pip 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 tin
Python3
pip 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 Rich
Chú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
Python3
pip 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ý
bảng điều khiển. in [bảng]
Kết xuất tệp Markdown
Chú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
Python3
pip 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ú
Python3
pip 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ú.
Python3
source 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%.
Python3
pip 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
Python3
pip 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%