Vấn đề mới
Có một câu hỏi về dự án này? Đăng ký một tài khoản GitHub miễn phí để mở một vấn đề và liên hệ với người bảo trì và cộng đồng của nó. Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
Bằng cách nhấp vào Đăng ký đăng ký cho GitHub, bạn đồng ý với Điều khoản dịch vụ và tuyên bố quyền riêng tư của chúng tôi. Chúng tôi thỉnh thoảng gửi cho bạn các email liên quan đến tài khoản.
Đã có trên Github? đăng nhập vào tài khoản của bạn
Nhãn
câu hỏi
Thông tin thêm được yêu cầu9
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.
Có cách nào để xác định kiểu định dạng [số thập phân] cho mô -đun Python
set TABULATE_INSTALL=lib-only pip install tabulate8 không?
Ví dụ:
Tôi có số 3.34643745.
Tôi muốn định dạng số thập phân để in ra chỉ hai vị trí thập phân.
Đầu ra:
set TABULATE_INSTALL=lib-only pip install tabulate9
Khi được hỏi ngày 6 tháng 5 năm 2016 lúc 19:21May 6, 2016 at 19:21
3
Có bạn có thể làm một cái gì đó như:
print tabulate[[["pi",3.141593],["e",2.718282]], floatfmt=".2f"]
Mà sẽ in:
-- ----
pi 3.14
e 2.71
-- ----
Dưới đây là một liên kết đến các tài liệu.
Đã trả lời ngày 6 tháng 5 năm 2016 lúc 19:29May 6, 2016 at 19:29
Sebenalernsebenalernsebenalern
2.4453 huy hiệu vàng23 Huy hiệu bạc34 Huy hiệu đồng3 gold badges23 silver badges34 bronze badges
Người dùng cũ đã tạo ra một vấn đề 2016-12-06 created an issue 2016-12-06
Trong ví dụ dưới đây, các số đầu vào có 4 số thập phân [.4115].
Kỳ vọng là các con số sẽ được giữ với tất cả các vị trí thập phân còn nguyên vẹn.
Tuy nhiên, một số con số bị cắt đứt, những người khác làm tròn, những người khác bị bỏ lại một mình.
Input:
PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]
Output:
>>> print[strTable] Not the expected value ------------------------ 0 -70.4115 -165.411 -355.411 -735.412 -70.4115 0
python-tabulate
Dữ liệu bảng in đẹp trong Python, thư viện và tiện ích dòng lệnh.
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
set TABULATE_INSTALL=lib-only pip install tabulate8 đến
>>> from tabulate import tabulate >>> table = [["Sun",696000,1989100000],["Earth",6371,5973.6], ... ["Moon",1737,73.5],["Mars",3390,641.85]] >>> print[tabulate[table]] ----- ------ ------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.85 ----- ------ -------------1 trên Linux [ví dụ:
>>> from tabulate import tabulate >>> table = [["Sun",696000,1989100000],["Earth",6371,5973.6], ... ["Moon",1737,73.5],["Mars",3390,641.85]] >>> print[tabulate[table]] ----- ------ ------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.85 ----- ------ -------------2]; hoặc như
>>> from tabulate import tabulate >>> table = [["Sun",696000,1989100000],["Earth",6371,5973.6], ... ["Moon",1737,73.5],["Mars",3390,641.85]] >>> print[tabulate[table]] ----- ------ ------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.85 ----- ------ -------------3 đến
>>> from tabulate import tabulate >>> table = [["Sun",696000,1989100000],["Earth",6371,5973.6], ... ["Moon",1737,73.5],["Mars",3390,641.85]] >>> print[tabulate[table]] ----- ------ ------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.85 ----- ------ -------------4 trong cài đặt Python của bạn trên Windows [ví dụ:
>>> from tabulate import tabulate >>> table = [["Sun",696000,1989100000],["Earth",6371,5973.6], ... ["Moon",1737,73.5],["Mars",3390,641.85]] >>> print[tabulate[table]] ----- ------ ------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.85 ----- ------ -------------5].
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 thành
>>> from tabulate import tabulate >>> table = [["Sun",696000,1989100000],["Earth",6371,5973.6], ... ["Moon",1737,73.5],["Mars",3390,641.85]] >>> print[tabulate[table]] ----- ------ ------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.85 ----- ------ -------------6 trên Linux và
>>> from tabulate import tabulate >>> table = [["Sun",696000,1989100000],["Earth",6371,5973.6], ... ["Moon",1737,73.5],["Mars",3390,641.85]] >>> print[tabulate[table]] ----- ------ ------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.85 ----- ------ -------------7 trên Windows.
Để chỉ cài đặt thư viện trên các hệ điều hành giống UNIX:
TABULATE_INSTALL=lib-only pip install tabulate
Trên Windows:
set TABULATE_INSTALL=lib-only pip install tabulate
Xây dựng trạng thái
Sử dụng thư viện
Mô-đun chỉ cung cấp một hàm,
set TABULATE_INSTALL=lib-only pip install tabulate8, 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:
>>> from tabulate import tabulate >>> table = [["Sun",696000,1989100000],["Earth",6371,5973.6], ... ["Moon",1737,73.5],["Mars",3390,641.85]] >>> print[tabulate[table]] ----- ------ ------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.85 ----- ------ -------------
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
>>> from tabulate import tabulate >>> table = [["Sun",696000,1989100000],["Earth",6371,5973.6], ... ["Moon",1737,73.5],["Mars",3390,641.85]] >>> print[tabulate[table]] ----- ------ ------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.85 ----- ------ -------------9 xác định danh sách các tiêu đề cột sẽ được sử dụng:
>>> print[tabulate[table, headers=["Planet","R [km]", "mass [x 10^29 kg]"]]] Planet R [km] mass [x 10^29 kg] -------- -------- ------------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.85
Nếu
>>> print[tabulate[table, headers=["Planet","R [km]", "mass [x 10^29 kg]"]]] Planet R [km] mass [x 10^29 kg] -------- -------- ------------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.850, thì hàng dữ liệu đầu tiên được sử dụng:
-- ----
pi 3.14
e 2.71
-- ----
0Nếu
>>> print[tabulate[table, headers=["Planet","R [km]", "mass [x 10^29 kg]"]]] Planet R [km] mass [x 10^29 kg] -------- -------- ------------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.851, 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:
-- ----
pi 3.14
e 2.71
-- ----
1Chỉ 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[table, headers=["Planet","R [km]", "mass [x 10^29 kg]"]]] Planet R [km] mass [x 10^29 kg] -------- -------- ------------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.852 hoặc
>>> print[tabulate[table, headers=["Planet","R [km]", "mass [x 10^29 kg]"]]] Planet R [km] mass [x 10^29 kg] -------- -------- ------------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.853 cho
>>> print[tabulate[table, headers=["Planet","R [km]", "mass [x 10^29 kg]"]]] Planet R [km] mass [x 10^29 kg] -------- -------- ------------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.854. Để 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[table, headers=["Planet","R [km]", "mass [x 10^29 kg]"]]] Planet R [km] mass [x 10^29 kg] -------- -------- ------------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.855 hoặc
>>> print[tabulate[table, headers=["Planet","R [km]", "mass [x 10^29 kg]"]]] Planet R [km] mass [x 10^29 kg] -------- -------- ------------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.856. Để thêm cột chỉ mục hàng tùy chỉnh, Pass
>>> print[tabulate[table, headers=["Planet","R [km]", "mass [x 10^29 kg]"]]] Planet R [km] mass [x 10^29 kg] -------- -------- ------------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.857, trong đó
>>> print[tabulate[table, headers=["Planet","R [km]", "mass [x 10^29 kg]"]]] Planet R [km] mass [x 10^29 kg] -------- -------- ------------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.858 là một số điều đáng kể:
-- ----
pi 3.14
e 2.71
-- ----
2Đị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[table, headers=["Planet","R [km]", "mass [x 10^29 kg]"]]] Planet R [km] mass [x 10^29 kg] -------- -------- ------------------- Sun 696000 1.9891e+09 Earth 6371 5973.6 Moon 1737 73.5 Mars 3390 641.859 xác định 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"
-- ----
pi 3.14
e 2.71
-- ----
00 Bảng không sử dụng bất kỳ trò chơi giả nào để vẽ các dòng:-- ----
pi 3.14
e 2.71
-- ----
3-- ----
pi 3.14
e 2.71
-- ----
01 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 -- ----
pi 3.14
e 2.71
-- ----
02 trong phần mở rộng Pandoc Markdown:-- ----
pi 3.14
e 2.71
-- ----
4-- ----
pi 3.14
e 2.71
-- ----
03 tuân theo các quy ước của dấu ấn có hương vị GitHub. Nó tương ứng với định dạng -- ----
pi 3.14
e 2.71
-- ----
04 mà không cần căn liên kết các dấu hiệu:-- ----
pi 3.14
e 2.71
-- ----
5-- ----
pi 3.14
e 2.71
-- ----
05 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 -- ----
pi 3.14
e 2.71
-- ----
06 trong phần mở rộng Pandoc Markdown:-- ----
pi 3.14
e 2.71
-- ----
6-- ----
pi 3.14
e 2.71
-- ----
07 vẽ một lưới bằng cách sử dụng các ký tự vẽ hộp đơn:-- ----
pi 3.14
e 2.71
-- ----
7-- ----
pi 3.14
e 2.71
-- ----
08 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:-- ----
pi 3.14
e 2.71
-- ----
8-- ----
pi 3.14
e 2.71
-- ----
09 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]:-- ----
pi 3.14
e 2.71
-- ----
9-- ----
pi 3.14
e 2.71
-- ----
10 vẽ một lưới bằng cách sử dụng hỗn hợp các ký tự hộp hình hộp ánh sáng [mỏng] và nặng [dày]:PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]0
-- ----
pi 3.14
e 2.71
-- ----
11 vẽ một lưới bằng cách sử dụng các ký tự vẽ hộp hai dòng:PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]1
-- ----
pi 3.14
e 2.71
-- ----
12 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:PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]2
-- ----
pi 3.14
e 2.71
-- ----
13 giống như định dạng -- ----
pi 3.14
e 2.71
-- ----
05 nhưng không vẽ các đường giữa các hàng:PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]3
-- ----
pi 3.14
e 2.71
-- ----
15 giống như định dạng -- ----
pi 3.14
e 2.71
-- ----
07 nhưng không vẽ các đường giữa các hàng:PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]4
-- ----
pi 3.14
e 2.71
-- ----
17 giống như định dạng -- ----
pi 3.14
e 2.71
-- ----
08 nhưng không vẽ các đường giữa các hàng:PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]5
-- ----
pi 3.14
e 2.71
-- ----
19 giống như định dạng -- ----
pi 3.14
e 2.71
-- ----
09 nhưng không vẽ các đường giữa các hàng:PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]6
-- ----
pi 3.14
e 2.71
-- ----
21 giống như định dạng -- ----
pi 3.14
e 2.71
-- ----
10 nhưng không vẽ các đường giữa các hàng:PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]7
-- ----
pi 3.14
e 2.71
-- ----
23 giống như định dạng -- ----
pi 3.14
e 2.71
-- ----
11 nhưng không vẽ các đường giữa các hàng:PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]8
-- ----
pi 3.14
e 2.71
-- ----
25 giống như định dạng -- ----
pi 3.14
e 2.71
-- ----
12 nhưng không vẽ các đường giữa các hàng:PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]9
-- ----
pi 3.14
e 2.71
-- ----
27 giống như các bảng được định dạng bởi Presto CLI:>>> print[strTable] Not the expected value ------------------------ 0 -70.4115 -165.411 -355.411 -735.412 -70.4115 00
-- ----
pi 3.14
e 2.71
-- ----
28 Cố gắng gần với định dạng phát ra từ thư viện PrettyTables:>>> print[strTable] Not the expected value ------------------------ 0 -70.4115 -165.411 -355.411 -735.412 -70.4115 01
-- ----
pi 3.14
e 2.71
-- ----
29 giống như các bảng được định dạng bởi PSQL CLI của Postgres:>>> print[strTable] Not the expected value ------------------------ 0 -70.4115 -165.411 -355.411 -735.412 -70.4115 02
-- ----
pi 3.14
e 2.71
-- ----
04 tuân theo các quy ước của phần mở rộng bổ sung PHP. Nó tương ứng với -- ----
pi 3.14
e 2.71
-- ----
31 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[strTable] Not the expected value ------------------------ 0 -70.4115 -165.411 -355.411 -735.412 -70.4115 03
-- ----
pi 3.14
e 2.71
-- ----
32 Định dạng dữ liệu giống như một bảng đơn giản của định dạng asciidoctor:>>> print[strTable] Not the expected value ------------------------ 0 -70.4115 -165.411 -355.411 -735.412 -70.4115 04
-- ----
pi 3.14
e 2.71
-- ----
33 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[strTable] Not the expected value ------------------------ 0 -70.4115 -165.411 -355.411 -735.412 -70.4115 05
-- ----
pi 3.14
e 2.71
-- ----
34 tuân theo các quy ước của ngôn ngữ đánh dấu Atlassian Jira:>>> print[strTable] Not the expected value ------------------------ 0 -70.4115 -165.411 -355.411 -735.412 -70.4115 06
-- ----
pi 3.14
e 2.71
-- ----
35 Định dạng dữ liệu giống như một bảng đơn giản của định dạng ReserfuredText:>>> print[strTable] Not the expected value ------------------------ 0 -70.4115 -165.411 -355.411 -735.412 -70.4115 07
Định dạng
-- ----
pi 3.14
e 2.71
-- ----
36 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[strTable] Not the expected value ------------------------ 0 -70.4115 -165.411 -355.411 -735.412 -70.4115 08
Định dạng
-- ----
pi 3.14
e 2.71
-- ----
37 tạo ra một đánh dấu bảng được sử dụng trong wikis moinmoin:>>> print[strTable] Not the expected value ------------------------ 0 -70.4115 -165.411 -355.411 -735.412 -70.4115 09
Định dạng
-- ----
pi 3.14
e 2.71
-- ----
38 tạo ra một đánh dấu bảng được sử dụng trong vé YouTrack:pip install tabulate0
Định dạng
-- ----
pi 3.14
e 2.71
-- ----
39 tạo ra một đánh dấu bảng được sử dụng ở định dạng dệt:pip install tabulate1
-- ----
pi 3.14
e 2.71
-- ----
40 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. -- ----
pi 3.14
e 2.71
-- ----
41 Định dạng bảng có thể được sử dụng nếu cần HTML chưa được xử lý:pip install tabulate2
Định dạng
-- ----
pi 3.14
e 2.71
-- ----
42 Tạo môi trường -- ----
pi 3.14
e 2.71
-- ----
43 cho đánh dấu latex, thay thế các ký tự đặc biệt như -- ----
pi 3.14
e 2.71
-- ----
44 hoặc -- ----
pi 3.14
e 2.71
-- ----
45 cho các phóng viên latex của họ:pip install tabulate3
-- ----
pi 3.14
e 2.71
-- ----
46 hoạt động như -- ----
pi 3.14
e 2.71
-- ----
42 nhưng không thoát khỏi các lệnh latex và ký tự đặc biệt.-- ----
pi 3.14
e 2.71
-- ----
48 Tạo môi trường -- ----
pi 3.14
e 2.71
-- ----
43 cho đánh dấu latex bằng cách sử dụng khoảng cách và kiểu dáng từ gói -- ----
pi 3.14
e 2.71
-- ----
50.-- ----
pi 3.14
e 2.71
-- ----
51 Tạo một bảng có thể kéo dài dọc theo nhiều trang, sử dụng gói -- ----
pi 3.14
e 2.71
-- ----
52.Căn chỉnh cột
set TABULATE_INSTALL=lib-only pip install tabulate8 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
-- ----
pi 3.14
e 2.71
-- ----
54 và -- ----
pi 3.14
e 2.71
-- ----
55. Căn chỉnh cột có thể là: -- ----
pi 3.14
e 2.71
-- ----
56, -- ----
pi 3.14
e 2.71
-- ----
57, -- ----
pi 3.14
e 2.71
-- ----
58, -- ----
pi 3.14
e 2.71
-- ----
59 [chỉ cho các số] và -- ----
pi 3.14
e 2.71
-- ----
60 [để 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:
pip install tabulate4
So sánh điều này với một căn chỉnh bên phải phổ biến hơn:
pip install tabulate5
Đối với
set TABULATE_INSTALL=lib-only pip install tabulate8, 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:
pip install tabulate6
Để vô hiệu hóa tính năng này, sử dụng
-- ----
pi 3.14
e 2.71
-- ----
62.pip install tabulate7
Căn chỉnh cột tùy chỉnh
set TABULATE_INSTALL=lib-only pip install tabulate8 cho phép căn chỉnh cột tùy chỉnh ghi đè lên trên. Đối số
-- ----
pi 3.14
e 2.71
-- ----
64 có thể là một danh sách hoặc một tuple của -- ----
pi 3.14
e 2.71
-- ----
55 đối số được đặt tên. Căn chỉnh cột có thể là: -- ----
pi 3.14
e 2.71
-- ----
56, -- ----
pi 3.14
e 2.71
-- ----
57, -- ----
pi 3.14
e 2.71
-- ----
58, -- ----
pi 3.14
e 2.71
-- ----
59 [chỉ cho các số] và -- ----
pi 3.14
e 2.71
-- ----
60 [để 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ụ:pip install tabulate8
Định dạng số
set TABULATE_INSTALL=lib-only pip install tabulate8 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 đối số được đặt tên
-- ----
pi 3.14
e 2.71
-- ----
72:pip install tabulate9
Đối số
-- ----
pi 3.14
e 2.71
-- ----
72 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:pip install tabulate --user0
-- ----
pi 3.14
e 2.71
-- ----
74 hoạt động tương tự cho số nguyênpip install tabulate --user1
Định dạng văn bản
Theo mặc định,
set TABULATE_INSTALL=lib-only pip install tabulate8 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
-- ----
pi 3.14
e 2.71
-- ----
76:pip install tabulate --user2
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
-- ----
pi 3.14
e 2.71
-- ----
77. Để cài đặt nó cùng với set TABULATE_INSTALL=lib-only pip install tabulate8:
pip install tabulate --user3
Hỗ trợ ký tự rộng được bật tự động nếu thư viện
-- ----
pi 3.14
e 2.71
-- ----
77 đã đượ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 -- ----
pi 3.14
e 2.71
-- ----
77, hãy đặt cờ cấp mô-đun toàn cầu -- ----
pi 3.14
e 2.71
-- ----
81:pip install tabulate --user4
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:
pip install tabulate --user5
-- ----
pi 3.14
e 2.71
-- ----
00 Bảng:pip install tabulate --user6
-- ----
pi 3.14
e 2.71
-- ----
01 Bảng:pip install tabulate --user7
-- ----
pi 3.14
e 2.71
-- ----
05 Bảng:pip install tabulate --user8
-- ----
pi 3.14
e 2.71
-- ----
12 Bảng:pip install tabulate --user9
-- ----
pi 3.14
e 2.71
-- ----
04 Bảng:TABULATE_INSTALL=lib-only pip install tabulate0
-- ----
pi 3.14
e 2.71
-- ----
33 Bảng:TABULATE_INSTALL=lib-only pip install tabulate1
-- ----
pi 3.14
e 2.71
-- ----
34 Bảng:TABULATE_INSTALL=lib-only pip install tabulate2
-- ----
pi 3.14
e 2.71
-- ----
27 Bảng:TABULATE_INSTALL=lib-only pip install tabulate3
-- ----
pi 3.14
e 2.71
-- ----
28 Bảng:TABULATE_INSTALL=lib-only pip install tabulate4
-- ----
pi 3.14
e 2.71
-- ----
29 Bảng:TABULATE_INSTALL=lib-only pip install tabulate5
-- ----
pi 3.14
e 2.71
-- ----
35 Bảng:TABULATE_INSTALL=lib-only pip install tabulate6
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ố
-- ----
pi 3.14
e 2.71
-- ----
93 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
-- ----
pi 3.14
e 2.71
-- ----
60 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.
TABULATE_INSTALL=lib-only pip install tabulate7
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
TABULATE_INSTALL=lib-only pip install tabulate8
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ụ:
TABULATE_INSTALL=lib-only pip install tabulate9
Để đố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ụ:
set TABULATE_INSTALL=lib-only pip install tabulate0
Việc sử dụng tiện ích dòng lệnh
set TABULATE_INSTALL=lib-only pip install tabulate1
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
set TABULATE_INSTALL=lib-only pip install tabulate8:
- 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.
set TABULATE_INSTALL=lib-only pip install tabulate8 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,
set TABULATE_INSTALL=lib-only pip install tabulate8 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,
set TABULATE_INSTALL=lib-only pip install tabulate8 dường như chậm hơn
-- ----
pi 3.14
e 2.71
-- ----
99 và nhanh hơn PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]00 và
PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]01, điểm chuẩn nhỏ sau đây được chạy trong Python 3.9.13 trên Windows 10:
set TABULATE_INSTALL=lib-only pip install tabulate2
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
PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]02.
Để 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,
PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]03 và
PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]04 được cài đặt, sau đó chạy
PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]04 trong gốc của cây nguồn dự án.
Trên Linux
PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]04 dự kiến sẽ tìm thấy các tệp thực thi như
PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]07,
PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]08, v.v ... trên Windows, nó tìm kiếm
PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]09,
PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]10, 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ư:
set TABULATE_INSTALL=lib-only pip install tabulate3
Đừng quên thay đổi
PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]11 của bạn để
PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]04 biết cách tìm tất cả các phiên bản đã cài đặt. Cái gì đó như
set TABULATE_INSTALL=lib-only pip install tabulate4
Để chỉ kiểm tra một số môi trường Python, hãy sử dụng tùy chọn
PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]13. Ví dụ: chỉ để kiểm tra chống lại Python 3.7 và Python 3.10, chạy:
set TABULATE_INSTALL=lib-only pip install tabulate5
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:
set TABULATE_INSTALL=lib-only pip install tabulate6
[Đ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ã:
set TABULATE_INSTALL=lib-only pip install tabulate7
Xem tệp
PPheaders = ['Not the expected value'] PPdata = [[0],[-70.4115],[-165.4115], [-355.4115],[-735.4115],[-70.4115],[0]] strTable = tabulate.tabulate[PPdata, headers=PPheaders] print[strTable]14 Để 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.