程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python可以美化表格數據輸出結果的兩個工具

編輯:Python

目錄

前言

1.使用tabulate美化表格輸出

2.使用prettytable美化輸出

總結

前言

在用python處理表格數據中,這其中的工作重點就是對表格類型的數據進行梳理、計算和展示,本文重點介紹展示這個方面的工作。

首先我們看一個案例,定義一個數組形式的表格數據:

[[email protected] table]$ ipythonPython 3.8.5 (default, Sep 4 2020, 07:30:14) Type 'copyright', 'credits' or 'license' for more informationIPython 7.19.0 -- An enhanced Interactive Python. Type '?' for help.In [1]: table=[('a',1,2,3),('b',2,3,4)]In [2]: print(table)[('a', 1, 2, 3), ('b', 2, 3, 4)]

當我們直接打印這個表格數據的時候,發現效果非常的難看。雖然我們可以從這個表格中獲取到同樣的信息,但是這種數據展示的方法對於我們直接從打印輸出中獲取數據是非常不利的。

1.使用tabulate美化表格輸出

首先介紹一個工具tabulate,可以直接打印數組格式的表格數據,並且有多種輸出格式可選。安裝方法同樣可以用pip來進行管理:

[[email protected] table]$ python3 -m pip install tabulateRequirement already satisfied: tabulate in /home/dechin/anaconda3/lib/python3.8/site-packages (0.8.9)

安裝很容易,也沒有其他依賴。

接下來我們用ipython來展示一些基本用法:

[[email protected] table]$ ipythonPython 3.8.5 (default, Sep 4 2020, 07:30:14) Type 'copyright', 'credits' or 'license' for more informationIPython 7.19.0 -- An enhanced Interactive Python. Type '?' for help.In [1]: from tabulate import tabulateIn [2]: import numpy as npIn [3]: header=['index']+list(range(4)) # 表頭的定義In [4]: headerOut[4]: ['index', 0, 1, 2, 3]In [8]: table=[('Alice',1,2,3,4),('Bob',2,3,4,5)] # 表格內容的定義In [9]: tableOut[9]: [('Alice', 1, 2, 3, 4), ('Bob', 2, 3, 4, 5)]In [11]: print(tabulate(table,headers=header,tablefmt='grid')) # 用grid的格式打印表格內容+---------+-----+-----+-----+-----+| index | 0 | 1 | 2 | 3 |+=========+=====+=====+=====+=====+| Alice | 1 | 2 | 3 | 4 |+---------+-----+-----+-----+-----+| Bob | 2 | 3 | 4 | 5 |+---------+-----+-----+-----+-----+In [12]: print(tabulate(table,headers=header,tablefmt='fancy_grid')) # 用fancy_grid的格式打印╒═════════╤═════╤═════╤═════╤═════╕│ index │ 0 │ 1 │ 2 │ 3 │╞═════════╪═════╪═════╪═════╪═════╡│ Alice │ 1 │ 2 │ 3 │ 4 │├─────────┼─────┼─────┼─────┼─────┤│ Bob │ 2 │ 3 │ 4 │ 5 │╘═════════╧═════╧═════╧═════╧═════╛

在這個案例中,我們分別產生了數組格式的表頭和表格內容,然後用tabulate進行封裝之後再打印出來。由於tabulate支持多種格式的輸出,這裡我們展示的僅有grid和fancy_grid兩種個人比較喜歡的格式

其他類型的格式還有:

"plain""simple""github""grid""fancy_grid""pipe""orgtbl""jira""presto""psql""rst""mediawiki""moinmoin""youtrack""html""latex""latex_raw""latex_booktabs""textile"2.使用prettytable美化輸出

類似於tabulate的,prettytable的主要目的也是規范化的美化表格數據的輸出,但是在使用方法上略有差異,在不同的場景下可以使用不同的方案。

這裡我們先看一下prettytable的安裝,同樣可以使用pip來進行管理:

[[email protected] table]$ python3 -m pip install prettytableCollecting prettytable Downloading prettytable-2.1.0-py3-none-any.whl (22 kB)Requirement already satisfied: wcwidth in /home/dechin/anaconda3/lib/python3.8/site-packages (from prettytable) (0.2.5)Installing collected packages: prettytableSuccessfully installed prettytable-2.1.0

安裝完成後我們用一個py文件的示例來展示其用法:

from prettytable import PrettyTabletb = PrettyTable() # 生成表格對象tb.field_names = ['Index', 0, 1, 2, 3] # 定義表頭tb.add_row(['Alice',1,2,3,4]) # 添加一行,列是columntb.add_row(['Bob',2,3,4,5])print (tb) # 打印輸出

代碼的執行結果如下:

[[email protected] table]$ python3 pt_test.py +-------+---+---+---+---+| Index | 0 | 1 | 2 | 3 |+-------+---+---+---+---+| Alice | 1 | 2 | 3 | 4 || Bob | 2 | 3 | 4 | 5 |+-------+---+---+---+---+

由於使用的案例跟上面介紹的tabulate是一樣的,所以輸出結果也類似,相當於多了一種輸出格式。但是除了輸出格式之外,我們發現prettytable可以很好的利用行和列的添加的形式來進行表格操作,操作習慣更接近於數據庫的操作形式,因此對於經常使用數據庫的人而言,prettytable可能是一種更好的表格數據輸出解決方案。

總結

本文介紹了兩種表格數據的打印工具:tabulate和prettytable的安裝與基本使用方法。由於表格數據本身是沒有對輸出格式進行規范化的,因此打印出來的數據會顯得比較雜亂,不利於直觀的閱讀。因此引入這兩種工具,加強了輸出結果的可讀性。這兩者在使用上各有優劣,tabulate支持更多形式的表格樣式,而prettytable則使用了更加接近於數據庫的操作形式,對於部分用戶而言有天然的生態優勢。

到此這篇關於python可以美化表格數據輸出結果的兩個工具的文章就介紹到這了,更多相關python美化表格輸出內容請搜索軟件開發網以前的文章或繼續浏覽下面的相關文章希望大家以後多多支持軟件開發網!



  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved