本文實例講述了Python實用庫 PrettyTable。分享給大家供大家參考,具體如下:
PrettyTable安裝
使用pip即可十分方便的安裝PrettyTable,如下:
pip install PrettyTable
PrettyTable使用示例
github上有PrettyTable的使用說明,鏈接如下:https://github.com/dprince/python-prettytable
以下是具體的使用示例:
import prettytable as pt
按行添加數據
tb = pt.PrettyTable() tb.field_names = ["City name", "Area", "Population", "Annual Rainfall"] tb.add_row(["Adelaide",1295, 1158259, 600.5]) tb.add_row(["Brisbane",5905, 1857594, 1146.4]) tb.add_row(["Darwin", 112, 120900, 1714.7]) tb.add_row(["Hobart", 1357, 205556,619.5]) print(tb)
+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
|? Adelaide | 1295 |? 1158259?? |????? 600.5????? |
|? Brisbane | 5905 |? 1857594?? |????? 1146.4???? |
|?? Darwin? | 112? |?? 120900?? |????? 1714.7???? |
|?? Hobart? | 1357 |?? 205556?? |????? 619.5????? |
+-----------+------+------------+-----------------+
按列添加數據
tb.add_column('index',[1,2,3,4]) print(tb)
+-----------+------+------------+-----------------+-------+
| City name | Area | Population | Annual Rainfall | index |
+-----------+------+------------+-----------------+-------+
|? Adelaide | 1295 |? 1158259?? |????? 600.5????? |?? 1?? |
|? Brisbane | 5905 |? 1857594?? |????? 1146.4???? |?? 2?? |
|?? Darwin? | 112? |?? 120900?? |????? 1714.7???? |?? 3?? |
|?? Hobart? | 1357 |?? 205556?? |????? 619.5????? |?? 4?? |
+-----------+------+------------+-----------------+-------+
使用不同的輸出風格
tb.set_style(pt.MSWORD_FRIENDLY) print('--- style:MSWORD_FRIENDLY -----') print(tb) tb.set_style(pt.PLAIN_COLUMNS) print('--- style:PLAIN_COLUMNS -----') print(tb)
隨機風格,每次不同
tb.set_style(pt.RANDOM) print('--- style:MSWORD_FRIENDLY -----') print(tb) tb.set_style(pt.DEFAULT) print('--- style:DEFAULT -----') print(tb)
--- style:MSWORD_FRIENDLY -----
| City name | Area | Population | Annual Rainfall |
|? Adelaide | 1295 |? 1158259?? |????? 600.5????? |
|? Brisbane | 5905 |? 1857594?? |????? 1146.4???? |
|?? Darwin? | 112? |?? 120900?? |????? 1714.7???? |
|?? Hobart? | 1357 |?? 205556?? |????? 619.5????? |
--- style:PLAIN_COLUMNS -----
City name??????? Area??????? Population??????? Annual Rainfall???????
?Adelaide??????? 1295???????? 1158259?????????????? 600.5????????????
?Brisbane??????? 5905???????? 1857594?????????????? 1146.4???????????
? Darwin???????? 112?????????? 120900?????????????? 1714.7???????????
? Hobart???????? 1357????????? 205556?????????????? 619.5????????????
--- style:MSWORD_FRIENDLY -----
@??? Adelaide???? 1295???? 1158259???? 600.5 @
@??? Brisbane???? 5905???? 1857594???? 1146.4@
@???? Darwin????? 112?????? 120900???? 1714.7@
@???? Hobart????? 1357????? 205556???? 619.5 @
--- style:DEFAULT -----
+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
|? Adelaide | 1295 |? 1158259?? |????? 600.5????? |
|? Brisbane | 5905 |? 1857594?? |????? 1146.4???? |
|?? Darwin? | 112? |?? 120900?? |????? 1714.7???? |
|?? Hobart? | 1357 |?? 205556?? |????? 619.5????? |
+-----------+------+------------+-----------------+
不打印,獲取表格字符串
s = tb.get_string() print(s)
可以只獲取指定列或行
s = tb.get_string(fields=["City name", "Population"],start=1,end=4) print(s)
+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
|? Adelaide | 1295 |? 1158259?? |????? 600.5????? |
|? Brisbane | 5905 |? 1857594?? |????? 1146.4???? |
|?? Darwin? | 112? |?? 120900?? |????? 1714.7???? |
|?? Hobart? | 1357 |?? 205556?? |????? 619.5????? |
+-----------+------+------------+-----------------+
+-----------+------------+
| City name | Population |
+-----------+------------+
|? Brisbane |? 1857594?? |
|?? Darwin? |?? 120900?? |
|?? Hobart? |?? 205556?? |
+-----------+------------+
自定義表格輸出樣式
設定左對齊
tb.align = 'l'
設定數字輸出格式
tb.float_format = "2.2"
設定邊框連接符為'*”
tb.junction_char = "*"
設定排序方式
tb.sortby = "City name"
設定左側不填充空白字符
tb.left_padding_width = 0 print(tb)
*----------*-----*-----------*----------------*
|City name |Area |Population |Annual Rainfall |
*----------*-----*-----------*----------------*
|Adelaide? |1295 |1158259??? |600.50????????? |
|Brisbane? |5905 |1857594??? |1146.40???????? |
|Darwin??? |112? |120900???? |1714.70???????? |
|Hobart??? |1357 |205556???? |619.50????????? |
*----------*-----*-----------*----------------*
不顯示邊框
tb.border = 0 print(tb)
修改邊框分隔符
tb.set_style(pt.DEFAULT) tb.horizontal_char = '+' print(tb)
City name Area Population Annual Rainfall
Adelaide? 1295 1158259??? 600.50?????????
Brisbane? 5905 1857594??? 1146.40????????
Darwin??? 112? 120900???? 1714.70????????
Hobart??? 1357 205556???? 619.50?????????
+++++++++++++++++++++++++++++++++++++++++++++++++++
| City name | Area | Population | Annual Rainfall |
+++++++++++++++++++++++++++++++++++++++++++++++++++
| Adelaide? | 1295 | 1158259??? | 600.50????????? |
| Brisbane? | 5905 | 1857594??? | 1146.40???????? |
| Darwin??? | 112? | 120900???? | 1714.70???????? |
| Hobart??? | 1357 | 205556???? | 619.50????????? |
+++++++++++++++++++++++++++++++++++++++++++++++++++
prettytable也支持輸出HTML代碼
s = tb.get_html_string() print(s)
City name | Area | Population | Annual Rainfall |
---|---|---|---|
Adelaide | 1295 | 1158259 | 600.50 |
Brisbane | 5905 | 1857594 | 1146.40 |
Darwin | 112 | 120900 | 1714.70 |
Hobart | 1357 | 205556 | 619.50 |
使用copy方法復制對象
tb.set_style(pt.DEFAULT) tb.horizontal_char = '.' tb2 = tb.copy() tb.align = 'l' tb2.align = 'r' print(tb) print(tb2)
直接賦值,得到的是索引
tb.horizontal_char = '-' tb.aliign = 'l' tb3 = tb tb3.align = 'r' print(tb) print(tb3)
+...........+......+............+.................+
| City name | Area | Population | Annual Rainfall |
+...........+......+............+.................+
| Adelaide? | 1295 | 1158259??? | 600.50????????? |
| Brisbane? | 5905 | 1857594??? | 1146.40???????? |
| Darwin??? | 112? | 120900???? | 1714.70???????? |
| Hobart??? | 1357 | 205556???? | 619.50????????? |
+...........+......+............+.................+
+...........+......+............+.................+
| City name | Area | Population | Annual Rainfall |
+...........+......+............+.................+
|? Adelaide | 1295 |??? 1158259 |????????? 600.50 |
|? Brisbane | 5905 |??? 1857594 |???????? 1146.40 |
|??? Darwin |? 112 |???? 120900 |???????? 1714.70 |
|??? Hobart | 1357 |???? 205556 |????????? 619.50 |
+...........+......+............+.................+
+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
|? Adelaide | 1295 |??? 1158259 |????????? 600.50 |
|? Brisbane | 5905 |??? 1857594 |???????? 1146.40 |
|??? Darwin |? 112 |???? 120900 |???????? 1714.70 |
|??? Hobart | 1357 |???? 205556 |????????? 619.50 |
+-----------+------+------------+-----------------+
+-----------+------+------------+-----------------+
| City name | Area | Population | Annual Rainfall |
+-----------+------+------------+-----------------+
|? Adelaide | 1295 |??? 1158259 |????????? 600.50 |
|? Brisbane | 5905 |??? 1857594 |???????? 1146.40 |
|??? Darwin |? 112 |???? 120900 |???????? 1714.70 |
|??? Hobart | 1357 |???? 205556 |????????? 619.50 |
+-----------+------+------------+-----------------+
---------------------
更多關于Python相關內容感興趣的讀者可查看本站專題:《Python操作Excel表格技巧總結》、《Python文件與目錄操作技巧匯總》、《Python文本文件操作技巧匯總》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
