python-tabulate
Dữ liệu bảng in đẹp trong Python, thư viện và tiện ích dòng lệnh.
Nội dung chính Show
- python-tabulate
- Cài đặt
- Xây dựng trạng thái
- Sử dụng thư viện
- Tiêu đề
- Chỉ số hàng
- Định dạng bảng
- Căn chỉnh cột
- Căn chỉnh cột tùy chỉnh
- Định dạng số
- Định dạng văn bản
- Biểu tượng rộng [FullWidth CJK]
- Tế bào đa dòng
- Tự động hóa đa dòng
- Thêm các dòng phân tách
- Hỗ trợ ANSI
- Việc sử dụng tiện ích dòng lệnh
- Cân nhắc hiệu suất
- Lịch sử phiên bản
- Làm thế nào để đóng góp
- Người đóng góp
- Làm thế nào để bạn thêm một bảng trong Python?
- Làm thế nào để bạn nhập bảng?
- Tại sao tôi không thể nhập bảng trong Python?
- Làm thế nào để bạn cài đặt bảng trong Conda?
Các trường hợp sử dụng chính của thư viện là:
- In các bảng nhỏ mà không gặp rắc rối: Chỉ một cuộc gọi chức năng, định dạng được hướng dẫn bởi chính dữ liệu
- Tác giả dữ liệu bảng cho đánh dấu văn bản đơn giản nhẹ: Nhiều định dạng đầu ra phù hợp để chỉnh sửa hoặc chuyển đổi thêm
- Trình bày có thể đọc được của dữ liệu văn bản và số hỗn hợp: Căn chỉnh cột thông minh, định dạng số có thể định cấu hình, căn chỉnh theo một điểm thập phân
Cài đặt
Để cài đặt thư viện Python và tiện ích dòng lệnh, chạy:
pip install tabulate
Tiện ích dòng lệnh sẽ được cài đặt dưới dạng
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob4 đến
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob5 trên Linux [ví dụ:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob6]; hoặc như
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob7 đến
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob8 trong cài đặt Python của bạn trên Windows [ví dụ:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob9].
Bạn có thể xem xét cài đặt thư viện chỉ cho người dùng hiện tại:
pip install tabulate --user
Trong trường hợp này, tiện ích dòng lệnh sẽ được cài đặt lên
>>> print[tabulate[[["F",24],["M",19]], showindex="always"]] - - -- 0 F 24 1 M 19 - - --0 trên Linux và
>>> print[tabulate[[["F",24],["M",19]], showindex="always"]] - - -- 0 F 24 1 M 19 - - --1 trên Windows.
Để chỉ cài đặt thư viện trên các hệ điều hành giống UNIX:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob0
Trên Windows:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob1
Xây dựng trạng thái
Sử dụng thư viện
Mô-đun chỉ cung cấp một hàm,
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob4, lấy một danh sách danh sách hoặc một loại dữ liệu dạng bảng khác làm đối số đầu tiên và xuất ra một bảng văn bản đơn giản được định dạng độc đáo:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob3
Các loại dữ liệu bảng sau được hỗ trợ:
- Danh sách danh sách hoặc một số khác của Iterables
- Danh sách hoặc một điều khác có thể đi được của Dicts [phím là cột]
- Dict of Iterables [phím làm cột]
- Danh sách các dữ liệu [chỉ Python 3.7+, tên trường là cột]
- Mảng numpy hai chiều
- Mảng bản ghi Numpy [tên dưới dạng cột]
- gấu trúc.dataframe
Tabulation là một thư viện Python3.
Tiêu đề
Đối số tùy chọn thứ hai có tên
>>> print[tabulate[[["F",24],["M",19]], showindex="always"]] - - -- 0 F 24 1 M 19 - - --3 xác định danh sách các tiêu đề cột sẽ được sử dụng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob5
Nếu
>>> print[tabulate[[["F",24],["M",19]], showindex="always"]] - - -- 0 F 24 1 M 19 - - --4, thì hàng dữ liệu đầu tiên được sử dụng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob7
Nếu
>>> print[tabulate[[["F",24],["M",19]], showindex="always"]] - - -- 0 F 24 1 M 19 - - --5, thì các khóa của Dictionary/DataFrame hoặc các chỉ số cột được sử dụng. Nó cũng hoạt động cho các mảng bản ghi Numpy và danh sách từ điển hoặc có tên là Tuples:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob
Chỉ số hàng
Theo mặc định, chỉ các bảng pandas.dataframe có một cột bổ sung có tên là chỉ mục hàng. Để thêm một cột tương tự với bất kỳ loại bảng nào khác, hãy chuyển đối số
>>> print[tabulate[[["F",24],["M",19]], showindex="always"]] - - -- 0 F 24 1 M 19 - - --6 hoặc
>>> print[tabulate[[["F",24],["M",19]], showindex="always"]] - - -- 0 F 24 1 M 19 - - --7 cho
>>> print[tabulate[[["F",24],["M",19]], showindex="always"]] - - -- 0 F 24 1 M 19 - - --8. Để triệt tiêu các chỉ số hàng cho tất cả các loại dữ liệu, hãy truyền
>>> print[tabulate[[["F",24],["M",19]], showindex="always"]] - - -- 0 F 24 1 M 19 - - --9 hoặc
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob40. Để thêm cột chỉ mục hàng tùy chỉnh, Pass
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob41, trong đó
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob42 là một số điều đáng kể:
>>> print[tabulate[[["F",24],["M",19]], showindex="always"]] - - -- 0 F 24 1 M 19 - - --
Định dạng bảng
Có nhiều hơn một cách để định dạng một bảng trong văn bản thuần túy. Đối số tùy chọn thứ ba có tên
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob43 định nghĩa cách bảng được định dạng.
Các định dạng bảng được hỗ trợ là:
- "plain"
- "simple"
- "github"
- "grid"
- "simple_grid"
- "rounded_grid"
- "heavy_grid"
- "mixed_grid"
- "double_grid"
- "fancy_grid"
- "outline"
- "simple_outline"
- "rounded_outline"
- "heavy_outline"
- "mixed_outline"
- "double_outline"
- "fancy_outline"
- "pipe"
- "orgtbl"
- "asciidoc"
- "jira"
- "presto"
- "pretty"
- "psql"
- "rst"
- "mediawiki"
- "Moinmoin"
- "youtrack"
- "html"
- "unsafehtml"
- "latex"
- "latex_raw"
- "latex_booktabs"
- "latex_longtable"
- "textile"
- "tsv"
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob44 Bảng không sử dụng bất kỳ trò chơi giả nào để vẽ các dòng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob4
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob45 là định dạng mặc định [mặc định có thể thay đổi trong các phiên bản trong tương lai]. Nó tương ứng với
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob46 trong phần mở rộng Pandoc Markdown:
pip install tabulate --user0
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob47 tuân theo các quy ước của Markdown có hương vị GitHub. Nó tương ứng với định dạng
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob48 mà không cần căn liên kết các dấu hiệu:
pip install tabulate --user1
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob49 giống như các bảng được định dạng bởi gói bảng của Emacs. Nó tương ứng với
pip install tabulate --user00 trong phần mở rộng Pandoc Markdown:
pip install tabulate --user2
pip install tabulate --user01 vẽ một lưới bằng cách sử dụng các ký tự vẽ hộp đơn:
pip install tabulate --user3
pip install tabulate --user02 vẽ một lưới bằng cách sử dụng các ký tự vẽ hộp đơn với các góc tròn:
pip install tabulate --user4
pip install tabulate --user03 vẽ một lưới bằng cách sử dụng các ký tự vẽ một dòng chữ đậm [dày]:
pip install tabulate --user5
pip install tabulate --user04 vẽ một lưới bằng cách sử dụng hỗn hợp các ký tự hình hộp ánh sáng [mỏng] và nặng [dày]:
pip install tabulate --user6
pip install tabulate --user05 vẽ một lưới bằng cách sử dụng các ký tự vẽ hộp hai dòng:
pip install tabulate --user7
pip install tabulate --user06 vẽ một lưới bằng cách sử dụng hỗn hợp các ký tự vẽ hộp đơn và hai dòng:
pip install tabulate --user8
pip install tabulate --user07 giống như định dạng
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob49 nhưng không vẽ các đường giữa các hàng:
pip install tabulate --user9
pip install tabulate --user09 giống như định dạng
pip install tabulate --user01 nhưng không vẽ các đường giữa các hàng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob00
pip install tabulate --user11 giống như định dạng
pip install tabulate --user02 nhưng không vẽ các đường giữa các hàng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob01
pip install tabulate --user13 giống như định dạng
pip install tabulate --user03 nhưng không vẽ các đường giữa các hàng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob02
pip install tabulate --user15 giống như định dạng
pip install tabulate --user04 nhưng không vẽ các đường giữa các hàng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob03
pip install tabulate --user17 giống như định dạng
pip install tabulate --user05 nhưng không vẽ các đường giữa các hàng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob04
pip install tabulate --user19 giống như định dạng
pip install tabulate --user06 nhưng không vẽ các đường giữa các hàng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob05
pip install tabulate --user21 giống như các bảng được định dạng bởi Presto CLI:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob06
pip install tabulate --user22 Cố gắng gần với định dạng phát ra từ thư viện PrettyTables:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob07
pip install tabulate --user23 giống như các bảng được định dạng bởi PSQL CLI của Postgres:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob08
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob48 tuân theo các quy ước của phần mở rộng bổ sung PHP. Nó tương ứng với
pip install tabulate --user25 trong pandoc. Định dạng này sử dụng các dấu chấm để chỉ ra căn chỉnh cột:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob09
pip install tabulate --user26 Định dạng dữ liệu giống như một bảng đơn giản của định dạng asciidoctor:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob10
pip install tabulate --user27 tuân theo các quy ước của Emacs org-mode, và cũng có thể chỉnh sửa trong chế độ orgtbl nhỏ. Do đó tên của nó:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob11
pip install tabulate --user28 tuân theo các quy ước của ngôn ngữ đánh dấu Atlassian Jira:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob12
pip install tabulate --user29 Định dạng dữ liệu giống như một bảng đơn giản của định dạng ReserfuredText:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob13
Định dạng
pip install tabulate --user30 tạo ra một đánh dấu bảng được sử dụng trong Wikipedia và trên các trang web dựa trên MediaWiki khác:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob14
Định dạng
pip install tabulate --user31 tạo ra một đánh dấu bảng được sử dụng trong Wikis Moinmoin:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob15
Định dạng
pip install tabulate --user32 tạo ra một đánh dấu bảng được sử dụng trong vé YouTrack:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob16
Định dạng
pip install tabulate --user33 tạo ra một đánh dấu bảng được sử dụng ở định dạng dệt:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob17
pip install tabulate --user34 tạo ra đánh dấu HTML tiêu chuẩn dưới dạng HTML.ESCAPE'D STR với phương thức .REPR_HTML để phòng thí nghiệm Jupyter và sổ ghi chép hiển thị thuộc tính HTML và .STR để HTML thô vẫn có thể truy cập được.
pip install tabulate --user35 Định dạng bảng có thể được sử dụng nếu cần có HTML không được xử lý:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob18
Định dạng
pip install tabulate --user36 Tạo môi trường
pip install tabulate --user37 cho đánh dấu latex, thay thế các ký tự đặc biệt như
pip install tabulate --user38 hoặc
pip install tabulate --user39 cho các phóng viên latex của họ:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob19
pip install tabulate --user40 hoạt động như
pip install tabulate --user36 nhưng không thoát khỏi các lệnh latex và ký tự đặc biệt.
pip install tabulate --user42 Tạo môi trường
pip install tabulate --user37 cho đánh dấu latex bằng cách sử dụng khoảng cách và kiểu dáng từ gói
pip install tabulate --user44.
pip install tabulate --user45 Tạo một bảng có thể kéo dài dọc theo nhiều trang, sử dụng gói
pip install tabulate --user46.
Căn chỉnh cột
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob4 là thông minh về căn chỉnh cột. Nó phát hiện các cột chỉ chứa các số và sắp xếp chúng theo một điểm thập phân [hoặc xả chúng sang phải nếu chúng có vẻ là số nguyên]. Các cột văn bản được xả vào bên trái.
Bạn có thể ghi đè căn chỉnh mặc định với các đối số được đặt tên
pip install tabulate --user48 và
pip install tabulate --user49. Căn chỉnh cột có thể là:
pip install tabulate --user50,
pip install tabulate --user51,
pip install tabulate --user52,
pip install tabulate --user53 [chỉ cho các số] và
pip install tabulate --user54 [để vô hiệu hóa căn chỉnh].
Sắp xếp theo một điểm thập phân hoạt động tốt nhất khi bạn cần so sánh các số trong nháy mắt:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob30
So sánh điều này với một căn chỉnh bên phải phổ biến hơn:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob31
Đối với
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob4, bất cứ điều gì có thể được phân tích cú pháp là một số là một số. Thậm chí các số được biểu thị dưới dạng chuỗi được căn chỉnh đúng. Tính năng này có ích khi đọc một bảng văn bản và số hỗn hợp từ một tệp:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob32
Để vô hiệu hóa tính năng này, sử dụng
pip install tabulate --user56.
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob263
Căn chỉnh cột tùy chỉnh
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob4 cho phép căn chỉnh cột tùy chỉnh ghi đè lên trên. Đối số
pip install tabulate --user58 có thể là một danh sách hoặc một tuple của
pip install tabulate --user49 đối số được đặt tên. Căn chỉnh cột có thể là:
pip install tabulate --user50,
pip install tabulate --user51,
pip install tabulate --user52,
pip install tabulate --user53 [chỉ cho các số] và
pip install tabulate --user54 [để vô hiệu hóa căn chỉnh]. Bỏ qua một căn chỉnh sử dụng mặc định. Ví dụ:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob34
Định dạng số
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob4 cho phép xác định định dạng số tùy chỉnh được áp dụng cho tất cả các cột của số thập phân. Sử dụng
pip install tabulate --user66 Đối số được đặt tên:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob35
pip install tabulate --user66 Đối số có thể là một danh sách hoặc một bộ chuỗi định dạng, một trong mỗi cột, trong trường hợp đó, mọi cột có thể có định dạng số khác nhau:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob36
pip install tabulate --user68 hoạt động tương tự cho số nguyên
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob37
Định dạng văn bản
Theo mặc định,
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob4 sẽ loại bỏ khoảng trắng dẫn đầu và dấu vết từ các cột văn bản. Để vô hiệu hóa loại bỏ khoảng trắng, hãy đặt cờ cấp mô-đun toàn cầu
pip install tabulate --user70:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob38
Biểu tượng rộng [FullWidth CJK]
Để căn chỉnh đúng các bảng có chứa các ký tự rộng [thường là các glyphs đầy đủ từ các ngôn ngữ Trung Quốc, Nhật Bản hoặc tiếng Hàn], người dùng nên cài đặt thư viện
pip install tabulate --user71. Để cài đặt nó cùng với
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob4:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob39
Hỗ trợ ký tự rộng được bật tự động nếu thư viện
pip install tabulate --user71 đã được cài đặt. Để vô hiệu hóa các ký tự rộng hỗ trợ mà không cần gỡ cài đặt
pip install tabulate --user71, hãy đặt cờ cấp mô-đun toàn cầu
pip install tabulate --user75:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob50
Tế bào đa dòng
Hầu hết các định dạng bảng đều hỗ trợ văn bản ô đa dòng [văn bản chứa các ký tự dòng mới]. Các ký tự Newline được vinh danh là ký tự phá vỡ dòng.
Các ô đa dòng được hỗ trợ cho các hàng dữ liệu và cho các hàng tiêu đề.
Các giao dịch dòng tự động hơn nữa không được chèn. Tất nhiên, một số định dạng đầu ra như latex hoặc HTML tự tự động định dạng nội dung ô, nhưng đối với các ký tự không, các ký tự mới trong văn bản ô đầu vào là phương tiện duy nhất để phá vỡ một dòng trong văn bản ô.
Lưu ý rằng một số định dạng đầu ra [ví dụ: đơn giản hoặc đơn giản] không đại diện cho các phân định hàng, để biểu diễn các ô đa dòng trong các định dạng như vậy có thể mơ hồ với người đọc.
Các ví dụ sau đây về đầu ra được định dạng sử dụng bảng sau với ô đa dòng và các tiêu đề có ô đa dòng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob51
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob44 Bảng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob52
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob45 Bảng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob53
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob49 Bảng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob54
pip install tabulate --user06 Bảng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob55
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob48 Bảng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob56
pip install tabulate --user27 Bảng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob57
pip install tabulate --user28 Bảng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob58
pip install tabulate --user21 Bảng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob59
pip install tabulate --user22 Bảng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob70
pip install tabulate --user23 Bảng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob71
pip install tabulate --user29 Bảng:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob72
Các tế bào đa dòng không được hỗ trợ tốt cho các định dạng bảng khác.
Tự động hóa đa dòng
Mặc dù Tabulation hỗ trợ dữ liệu được truyền vào với các mục Multilines được cung cấp rõ ràng, nhưng nó cũng cung cấp một số hỗ trợ để giúp quản lý công việc này trong nội bộ.
Đối số
pip install tabulate --user87 là một danh sách trong đó mỗi mục nhập chỉ định độ rộng tối đa cho cột tương ứng của nó. Bất kỳ ô nào sẽ vượt quá điều này sẽ tự động kết thúc nội dung. Để gán cùng một chiều rộng tối đa cho tất cả các cột, có thể sử dụng một máy đo int số ít.
Sử dụng
pip install tabulate --user54 cho bất kỳ cột nào không cần cung cấp tối đa rõ ràng, và do đó sẽ không có gói đa năng tự động nào sẽ diễn ra.
Gói sử dụng chức năng TextWrap.Wrap tiêu chuẩn Python với các tham số mặc định - ngoài chiều rộng.
Ví dụ này cho thấy việc sử dụng gói đa dòng tự động, mặc dù thông thường các dòng được bọc có thể sẽ dài hơn đáng kể so với điều này.
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob73
Thêm các dòng phân tách
Người ta có thể muốn thêm một hoặc nhiều dòng phân tách để làm nổi bật các phần khác nhau trong bảng.
Các dòng phân tách sẽ cùng loại với quy định của định dạng được chỉ định là dòng linebetedrows, lineBelowHeader, lineBelow, lineAbove hoặc chỉ là một dòng trống đơn giản khi không được xác định cho định dạng
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob74
Hỗ trợ ANSI
Mã thoát ANSI là các chuỗi byte không thể in thường được sử dụng cho các hoạt động đầu cuối như thiết lập đầu ra màu hoặc sửa đổi các vị trí con trỏ. Bởi vì các chuỗi ANSI đa byte vốn không thể in được, chúng vẫn có thể giới thiệu độ dài thêm không mong muốn cho các chuỗi. Ví dụ:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob75
Để đối phó với điều này, độ dài chuỗi được tính toán sau khi lần đầu tiên xóa tất cả các chuỗi thoát ANSI. Điều này đảm bảo rằng chiều dài có thể in thực tế được sử dụng cho chiều rộng cột, thay vì chiều dài byte. Tuy nhiên, trong bảng cuối cùng, có thể in được, các chuỗi thoát ANSI không được loại bỏ để kiểu dáng ban đầu được bảo tồn.
Một số thiết bị đầu cuối hỗ trợ một nhóm đặc biệt của các chuỗi thoát ANSI nhằm hiển thị các siêu liên kết giống như cách chúng được hiển thị trong các trình duyệt. Chúng được xử lý đúng như đã đề cập trước đây: Trình tự thoát ANSI không thể in được gỡ bỏ trước khi tính toán độ dài chuỗi. Sự khác biệt duy nhất với các siêu liên kết thoát ra là chiều rộng cột sẽ dựa trên chiều dài của văn bản URL thay vì chính URL [các thiết bị đầu cuối sẽ hiển thị văn bản này]. Ví dụ:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob76
Việc sử dụng tiện ích dòng lệnh
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob77
Cân nhắc hiệu suất
Như các tính năng như căn chỉnh điểm thập phân và cố gắng phân tích mọi thứ như một số ngụ ý rằng
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob4:
- phải "đoán" cách in một kiểu dữ liệu bảng cụ thể
- cần giữ toàn bộ bảng trong bộ nhớ
- phải "chuyển đổi" bảng hai lần
- có nhiều việc hơn nó có thể xuất hiện
Nó có thể không phù hợp để tuần tự hóa các bảng thực sự lớn [nhưng dù sao thì ai sẽ làm điều đó?] Hoặc in các bảng trong các ứng dụng nhạy cảm hiệu suất.
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob4 là khoảng hai bậc chậm hơn so với chỉ đơn giản là tham gia danh sách các giá trị với một tab, dấu phẩy hoặc dấu phân cách khác.
Đồng thời,
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob4 có thể so sánh với các máy tính đẹp khác của bảng. Với bảng 10x10 [danh sách các danh sách] dữ liệu văn bản và dữ liệu số hỗn hợp,
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob4 dường như chậm hơn so với
pip install tabulate --user93 và nhanh hơn
pip install tabulate --user94 và
pip install tabulate --user95 Điểm chuẩn mini sau đây được chạy trong Python 3.9.13 trên Windows 10:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob78
Lịch sử phiên bản
Lịch sử phiên bản đầy đủ có thể được tìm thấy tại Changelog.
Làm thế nào để đóng góp
Đóng góp nên bao gồm các bài kiểm tra và giải thích cho những thay đổi mà họ đề xuất. Tài liệu [ví dụ, DocStrings, ReadMe.MD] nên được cập nhật tương ứng.
Dự án này sử dụng khung thử nghiệm pytest và TOX để tự động hóa thử nghiệm trong các môi trường khác nhau. Thêm các thử nghiệm cho một trong các tệp trong thư mục
pip install tabulate --user96.
Để chạy các thử nghiệm trên tất cả các phiên bản Python được hỗ trợ, hãy đảm bảo tất cả các phiên dịch viên Python,
pip install tabulate --user97 và
pip install tabulate --user98 được cài đặt, sau đó chạy
pip install tabulate --user98 trong gốc của cây nguồn dự án.
Trên Linux
pip install tabulate --user98 dự kiến sẽ tìm thấy các tệp thực thi như
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob001,
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob002, v.v. trên Windows, nó tìm kiếm
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob003,
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob004, v.v.
Một cách để cài đặt tất cả các phiên bản cần thiết của trình thông dịch Python là sử dụng pyenv. Tất cả các phiên bản sau đó có thể dễ dàng cài đặt với một cái gì đó như:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob79
Đừng quên thay đổi
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob005 của bạn để
pip install tabulate --user98 biết cách tìm tất cả các phiên bản đã cài đặt. Cái gì đó như
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob0
Để chỉ kiểm tra một số môi trường Python, hãy sử dụng tùy chọn
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob007. Ví dụ: chỉ để kiểm tra chống lại Python 3.7 và Python 3.10, chạy:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob1
Trong gốc của cây nguồn dự án.
Để kích hoạt các bài kiểm tra Numpy và Pandas, hãy chạy:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob2
[Điều này có thể mất nhiều thời gian đầu tiên, bởi vì Numpy và Pandas sẽ phải được cài đặt trong các môi trường ảo mới]
Để khắc phục định dạng mã:
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob3
Xem tệp
>>> print[tabulate[{"Name": ["Alice", "Bob"], ... "Age": [24, 19]}, headers="keys"]] Age Name ----- ------ 24 Alice 19 Bob008 Để tìm hiểu cách sử dụng để kiểm tra các phiên bản Python riêng lẻ.
Người đóng góp
Sergey Astanin, Pau Tallada Crespí, Erwin Marsi, Mik Kocikowski, Bill Ryder, Zach Dwiel, Frederik Rietdijk, Philipp Bogensberger Santacruz López-Cerpero, Sam Denton, Alexey Ziyangirov, Acaird, Cesar Sanchez, Naught101, John Vandenberg, Zack Dever, Christian Clauss , Dmitry B, Lars Butler, Andreas Maier, Dick Marinus, Sébastien Celles, Yago González, Andrew Gaul, Wim Glenn, Jean Michel Rouly, Tim Gates, John Vandenberg, Sorin Sbarnea, Wes Turner, Andrew Tija Danja100, Endolith, Dominic Davis-Foster, Pavlocat, Daniel Aslau, Paulc, Felix Yan, Shane Loretz, Frank Busse, Harsh Singh, Derek Weitzel, Vladimir Vrzić, 서승우 [Chrd5273] , Alexander Gažo, Hugo Van Kemenade, JA Mescoke, Matt Warner, Jérôme Provensal, Kevin Deldycke, Kian-Meng Ang, Kevin Patterson, Shodhan Save, Cleoold, Kolanich, Vijaya Krishna Kasula, Furcy Pin, Christian Fibich, Shaun Duncan, Dimitri Papadopoulos.
Làm thế nào để bạn thêm một bảng trong Python?
Làm thế nào để dễ dàng tạo bảng trong Python...
Cài đặt bảng. Trước tiên chúng tôi cài đặt thư viện Tabulation bằng cách cài đặt PIP trong dòng lệnh: PIP Cài đặt Tabulation ..
Nhập chức năng bảng. ....
Danh sách danh sách. ....
Từ điển của Iterables. ....
giá trị bị mất..
Làm thế nào để bạn nhập bảng?
1. Nhập bảng.Bước đầu tiên là nhập chức năng Tabulation từ thư viện Tabulation.Trong trường hợp điều này dẫn đến một lỗi, hãy đảm bảo bạn đã cài đặt thư viện Tabulation bằng cách thực thi lệnh Cài đặt PIP trên dấu nhắc lệnh.
Tại sao tôi không thể nhập bảng trong Python?
Python "ModulenotFounderRor: Không có mô -đun có tên 'Tabulation'" xảy ra khi chúng ta quên cài đặt mô -đun Tabulation trước khi nhập hoặc cài đặt nó trong môi trường không chính xác.Để giải quyết lỗi, cài đặt mô -đun bằng cách chạy lệnh PIP Install Tabulation.occurs when we forget to install the tabulate module before importing it or install it in an incorrect environment. To solve the error, install the module by running the pip install tabulate command.occurs when we forget to install the tabulate module before importing it or install it in an incorrect environment. To solve the error, install the module by running the pip install tabulate command.
Làm thế nào để bạn cài đặt bảng trong Conda?
Installation...
Mở dấu nhắc Anaconda ..
Chạy Conda Tạo -N GMSJUPYTER PYTHON = 3,8.....
Kích hoạt môi trường mới với Conda Kích hoạt GMSJUPYTER ..
Cài đặt Jupyterlab với Conda Cài đặt Jupyterlab ..
Cài đặt Pandas: Cài đặt Panda Conda ..
Cài đặt Tabulation: Conda Cài đặt Tabulation ..