Dấu nhắc giàu python trong bố cục

Rich có thể hiển thị thông tin được cập nhật liên tục về tiến độ của các tác vụ/bản sao tệp đang chạy trong thời gian dài, v.v. Thông tin được hiển thị có thể định cấu hình, mặc định sẽ hiển thị mô tả về 'tác vụ', thanh tiến trình, phần trăm hoàn thành và thời gian ước tính còn lại

Hiển thị tiến trình phong phú hỗ trợ nhiều tác vụ, mỗi tác vụ có một thanh và thông tin tiến trình. Bạn có thể sử dụng điều này để theo dõi các tác vụ đồng thời nơi công việc đang diễn ra trong các luồng hoặc quy trình

Thật đẹp, hãy xem nó với python -m rich.progress

Để sử dụng cơ bản, hãy gọi hàm track(), hàm này chấp nhận một chuỗi (chẳng hạn như danh sách hoặc đối tượng phạm vi) và mô tả tùy chọn về công việc bạn đang thực hiện. Phương thức theo dõi sẽ mang lại các giá trị từ trình tự và cập nhật thông tin tiến trình trên mỗi lần lặp. Đây là một ví dụ

Ghi chú. Đối với những người không phải là thành viên, bài viết này cũng có sẵn tại https. //dineshkumarkb. com/tech/build-command-line-applications-in-python-using-rich/

Khách quan

Bạn có muốn vượt qua dòng lệnh đơn sắc thông thường không?

Ủng hộ

Rich hoạt động trên nền tảng OSX, linux và windows

con trăn

≥ Trăn 3. 6. 1

Cài đặt

pip install rich

Giới thiệu phong phú

Rich là một thư viện Python để viết văn bản có định dạng (có màu sắc và kiểu) vào thiết bị đầu cuối và để hiển thị nội dung nâng cao như bảng, đánh dấu và mã được tô sáng cú pháp

Bắt đầu

Không chần chừ gì nữa, hãy bắt đầu sử dụng các lệnh của thư viện rich. Thư viện này cung cấp một trình thay thế thả xuống cho hầu hết các chức năng python tích hợp

Hãy bắt đầu với câu lệnh in. Tôi đang nhập

from rich import print as rprint
rprint(" [red]Welcome[/red] to a rich cli ")
1 dưới dạng
from rich import print as rprint
rprint(" [red]Welcome[/red] to a rich cli ")
2 để tránh xung đột với câu lệnh mặc định của python là
from rich import print as rprint
rprint(" [red]Welcome[/red] to a rich cli ")
1

from rich import print as rprint
rprint(" [red]Welcome[/red] to a rich cli ")

Để thay đổi màu của văn bản được hiển thị, chỉ cần đặt tên màu giống như thẻ

from rich import print as rprint
rprint(" [red]Welcome[/red] to a rich cli ")
4. Hãy nhớ đóng thẻ khi bạn hoàn thành

Đầu ra của mã trên trông giống như dưới đây

In văn bản màu trên thiết bị đầu cuối

Hãy thử in bất kỳ đối tượng tích hợp nào bằng cả in bình thường và in phong phú và so sánh đầu ra

from rich import print as rprint

rprint("dictionary", dict)
print("dictionary", dict)

đầu ra

Lưu ý sự khác biệt về màu sắc giữa bản in bình thường và phong phú

Xin lưu ý rằng tôi chưa chỉ định bất kỳ màu nào cho bản in nhưng nó đưa ra gợi ý trực quan cho người dùng

Bây giờ, chúng ta đã thấy những điều cơ bản về khả năng của rich, hãy thử một cái gì đó phức tạp hơn như điều khiển toàn bộ thiết bị đầu cuối, vẽ bảng điều khiển, v.v.

Lặn sâu

Để có tùy chỉnh thiết bị đầu cuối của riêng bạn, rich cung cấp API bảng điều khiển. Điều này có thể được tận dụng để tự động phát hiện một số thuộc tính như kích thước, mã hóa, color_system, v.v.

Rich sẽ tự động phát hiện hệ thống màu phù hợp hoặc bạn có thể đặt hệ màu theo cách thủ công bằng cách cung cấp giá trị cho ___1_______6 cho hàm tạo ___1_______7

Hệ thống màu được hỗ trợ

  • Không → Không màu
  • “auto” →Tự động phát hiện hệ thống màu của thiết bị đầu cuối của bạn
  • “tiêu chuẩn” →Có thể hiển thị 8 màu từ “tiêu chuẩn” gồm 240 màu
  • “256” →Có thể hiển thị 8 màu từ “tiêu chuẩn” gồm 240 màu
  • “truecolor” →Có thể hiển thị 16. 7 triệu màu
  • “windows” →Có thể hiển thị 8 màu trong thiết bị đầu cuối Windows cũ

Mã để kết xuất bảng điều khiển và spinners

Kết xuất bảng trên dòng lệnh của bạn

Lớp

from rich import print as rprint
rprint(" [red]Welcome[/red] to a rich cli ")
8 trong thư viện rich giúp chúng tôi hiển thị dữ liệu dạng bảng

def display_table():

t = Table(title="Nolan Filmography", title_justify="center")
t.add_column("Movie", justify="center", style="cyan")
t.add_column("Year", justify="center", style="cyan")
t.add_row("Tenet", "2021")
t.add_row("Dunkirk", "2017")
t.add_row("Intersteller", "2014")
t.add_row("Inception", "2010")
console.print(t)

đầu ra

Đầu ra dạng bảng từ phong phú

ghi nhật ký

Ngoài chức năng

from rich import print as rprint
rprint(" [red]Welcome[/red] to a rich cli ")
1, thư viện phong phú còn cung cấp cách ghi nhật ký hành động của bạn vào bảng điều khiển

console.log(f"User name received [red]{username}[/red]")

con quay

Bạn đang hết spinners? Mệt mỏi vì sử dụng spinner mặc định? . Điều này cung cấp các loại con quay khác nhau từ hình vòng cung đến hình trái tim. Để kiểm tra các loại máy quay khác nhau, vui lòng sử dụng lệnh này

$python -m rich.spinner

đầu ra

Ghi chú. Xin lưu ý rằng các cửa sổ có thể không hỗ trợ tất cả các máy quay. Tôi đã cung cấp tất cả các ảnh chụp màn hình của mình từ Ubuntu 20. 04

Căn chỉnh đầu ra của bạn trên bảng điều khiển

Cả bản in và nhật ký đều hỗ trợ đối số

from rich import print as rprint

rprint("dictionary", dict)
print("dictionary", dict)
2 mà nếu được đặt phải là một trong các đối số “mặc định”, “trái”, “phải”, “giữa” hoặc “đầy đủ”. Nếu “trái”, mọi văn bản được in (hoặc ghi nhật ký) sẽ được căn trái, nếu “phải” văn bản sẽ được căn sang bên phải của thiết bị đầu cuối, nếu “giữa” thì văn bản sẽ được căn giữa và nếu “đầy đủ” thì văn bản sẽ được căn giữa.

console.print(" ........ Welcome to the command line built using rich .........", style=style1, justify="center")

Bố cục

Rich cung cấp bố cục cho dòng lệnh của bạn để hiển thị nội dung độc lập. Để nhận được tất cả các bố cục được hỗ trợ, vui lòng cung cấp lệnh bên dưới

$python -m rich.layout

đầu ra

Chế độ xem bố cục trong mô-đun phong phú

Các phương thức __rich__ và __rich_console__ cho các đối tượng tùy chỉnh

Cách dễ nhất để tùy chỉnh đầu ra của bàn điều khiển cho đối tượng của bạn là triển khai phương thức

from rich import print as rprint

rprint("dictionary", dict)
print("dictionary", dict)
3. Phương thức này không chấp nhận đối số và sẽ trả về một đối tượng mà Rich biết cách hiển thị, chẳng hạn như văn bản hoặc bảng

class Car:

def __rich__(self):
return "[bold yellow]Car()"


c = Car()
rprint(c)

Đây là để hiển thị các đối tượng đơn giản hơn. Đối với các đối tượng phức tạp hơn, nên sử dụng __rich_console__

Yêu thích cá nhân của tôi

Mặc dù tất cả các tính năng của thư viện rich đều tuyệt vời, cá nhân tôi thích

from rich import print as rprint

rprint("dictionary", dict)
print("dictionary", dict)
5,
from rich import print as rprint

rprint("dictionary", dict)
print("dictionary", dict)
6 và
from rich import print as rprint

rprint("dictionary", dict)
print("dictionary", dict)
7. Bạn luôn có thể sử dụng công cụ quay vòng hoặc thực tế là bất kỳ tính năng nào từ rich mặc dù thư viện dòng lệnh bạn sử dụng có thể khác. . )

Vui lòng khám phá tài liệu để biết thêm các tính năng thú vị có thể phù hợp với nhu cầu của bạn

Hoàn thành mã

Tôi đã cung cấp mã hoàn chỉnh ở đây để bạn tham khảo. Điều này sẽ giúp bạn bắt đầu với rich