PrettyTable模塊

一、簡介

PrettyTable 是python中的一個第三方庫,可用來生成美觀的ASCII格式的表格。

二、安裝

pip install prettytable

三、導入

from prettytable import PrettyTable

四、使用

# 創(chuàng)建表:
tb = pt.PrettyTable()

# 按行添加數(shù)據(jù):
tb.add_row(<llist>)

# 按列添加數(shù)據(jù):
tb.add_column(<llist>)

五、示例

(1)按行添加數(shù)據(jù)

import prettytable as pt

tb = pt.PrettyTable(['班級', '姓名', '性別', '科目', '成績'])
# tb = pt.PrettyTable()
# tb.field_names = ['班級', '姓名', '性別', '科目', '成績']

tb.add_row(['15級1班', '小明', '男', '語文', 120])
tb.add_row(['15級2班', '小紅', '女', '英語', 98])
tb.add_row(['16級1班', '張三', '男', '數(shù)學', 143])
tb.add_row(['17級6班', '李四', '男', '數(shù)學', 130])

print(tb)
按行添加數(shù)據(jù)

(2)按列添加數(shù)據(jù)

import prettytable as pt

tb = pt.PrettyTable()
tb.add_column('班級', ['15級1班', '15級2班', '16級1班', '17級6班'])
tb.add_column('姓名', ['小明', '小紅', '張三', '李四'])
tb.add_column('性別', ['男', '女', '男', '男'])
tb.add_column('科目', ['語文', '英語', '數(shù)學', '數(shù)學'])
tb.add_column('成績', [120, 98, 143, 130])

print(tb)
按列添加數(shù)據(jù)

(3)注意

這里

tb = pt.PrettyTable(["班級", "姓名", "性別", "科目", "成績"])

相當于

tb = pt.PrettyTable()
tb.field_names = ["班級", "姓名", "性別", "科目", "成績"]

如果沒有添加表頭,那么會以默認的Field+編號顯示,編號從1開始。


六、從csv文件添加數(shù)據(jù)

PrettyTable不僅提供了手動按行按列添加數(shù)據(jù),也支持直接從csv文件中讀取數(shù)據(jù)。

import prettytable as pt

with open('res.csv', 'r') as f:
    table = pt.from_csv(fp) 
    print(table)

注意:csv文件不能通過xls直接重命名得到,會報錯。如果是xls文件,請用另存為csv獲得csv文件

七、從sql查詢值添加

從數(shù)據(jù)庫查詢出來的數(shù)據(jù)以表格形式打印,下例使用的是sqlite3,mysql也支持。

import sqlite3
from prettytable import from_db_cursor 

conn = sqlite3.connect("/sqlite.db")
cur = conn.cursor()
cur.execute("SELECT * FROM myDatabase") 
table = from_db_cursor(cur)
print(table)

八、從HTML導入數(shù)據(jù)

from prettytable import from_html

html_string='''<table>
<tr>
<th>code</th>
<th>uuid</th>
<th>name</th>
<th>IP</th>
</tr>
<tr>
<td>1</td>
<td>server01</td>
<td>server-01</td>
<td>192.168.100.1</td>
</tr>
<tr>
<td>2</td>
<td>server02</td>
<td>server-02</td>
<td>192.168.100.2</td>
</tr>
</table>'''

table = from_html(html_string)

print(table[0])

導入 html 的表格,但是不一樣的地方是 print 語句,使用 html 表格導入數(shù)據(jù)的時候 print 的必須是列表中的第一個元素,否則有可能會報[<prettytable.PrettyTable object at 0x7fa87feba590>]這樣的錯誤。

九、選擇性輸出

有選擇的輸出某些特定的行。

## 輸出指定的列
print(table.get_string(fields=["Area", "Population"]))

## 輸出指定的行,start 和 end 參數(shù)可以自由控制顯示區(qū)間
print(table.get_string(start = 0, end = 2))

## 將表格切片
new_table = table[0:2]
print(new_table)

## 輸出排序
print(table.get_string(sortby="City name", reversesort=True))
## 其中 reversesort 指定了是否倒序排序,默認為 False,即默認正序列排序。sortby 指定了排序的字段。
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容