首頁 > 軟體

python 利用 PrettyTable 美化表格

2022-04-02 13:00:57

一、安裝

pip install PrettyTable

二、按行設定資料

import prettytable as pt

# 按行新增資料
tb = pt.PrettyTable()
tb.field_names = ['name', 'age', 'height', 'weight']
tb.add_row(['autofelix', 25, 174, 65])
tb.add_row(['大神', 23, 164, 55])
tb.add_row(['飛兔小哥', 27, 184, 69.5])

print(tb)

# +-----------+-----+--------+--------+
# | name | age | height | weight |
# +-----------+-----+--------+--------+
# | autofelix | 25 | 174 | 65 |
# | 大神 | 23 | 164 | 55 |
# | 飛兔小哥 | 27 | 184 | 69.5 |
# +-----------+-----+--------+--------+

三、按列新增

import prettytable as pt

# 按行新增資料
tb = pt.PrettyTable()
tb.field_names = ['name', 'age', 'height', 'weight']
tb.add_row(['autofelix', 25, 174, 65])
tb.add_row(['大神', 23, 164, 55])
tb.add_row(['飛兔小哥', 27, 184, 69.5])
# 按列新增資料
tb.add_column('sex',['男', '女', '男'])

print(tb)

# +-----------+-----+--------+--------+-----+
# | name | age | height | weight | sex |
# +-----------+-----+--------+--------+-----+
# | autofelix | 25 | 174 | 65 | 男 |
# | 大神 | 23 | 164 | 55 | 女 |
# | 飛兔小哥 | 27 | 184 | 69.5 | 男 |
# +-----------+-----+--------+--------+-----+

四、輸出風格

  • MSWORD_FRIENDLY:MSWORD_FRIENDLY輸出風格
  • PLAIN_COLUMNS:PLAIN_COLUMNS輸出風格
  • RANDOM:每次隨機輸出風格
  • DEFAULT:預設輸出風格
import prettytable as pt

# 按行新增資料
tb = pt.PrettyTable()
tb.field_names = ['name', 'age', 'height', 'weight']
tb.add_row(['autofelix', 25, 174, 65])
tb.add_row(['大神', 23, 164, 55])
tb.add_row(['飛兔小哥', 27, 184, 69.5])
# 風格
tb.set_style(pt.MSWORD_FRIENDLY)

print(tb)

# | name | age | height | weight |
# | autofelix | 25 | 174 | 65 |
# | 大神 | 23 | 164 | 55 |
# | 飛兔小哥 | 27 | 184 | 69.5 |

五、獲取字串

import prettytable as pt

# 按行新增資料
tb = pt.PrettyTable()
tb.field_names = ['name', 'age', 'height', 'weight']
tb.add_row(['autofelix', 25, 174, 65])
tb.add_row(['大神', 23, 164, 55])
tb.add_row(['飛兔小哥', 27, 184, 69.5])

# 不列印,獲取表格字串
s1 = tb.get_string()
print(s1)

# +-----------+-----+--------+--------+
# | name | age | height | weight |
# +-----------+-----+--------+--------+
# | autofelix | 25 | 174 | 65 |
# | 大神 | 23 | 164 | 55 |
# | 飛兔小哥 | 27 | 184 | 69.5 |
# +-----------+-----+--------+--------+

# 或者可以只獲取指定列或行
s2 = tb.get_string(fields=['name', 'age'], start=1, end=4)
print(s2)

# +----------+-----+
# | name | age |
# +----------+-----+
# | 大神 | 23 |
# | 飛兔小哥 | 27 |
# +----------+-----+

六、表格樣式設定

import prettytable as pt

# 按行新增資料
tb = pt.PrettyTable()
tb.field_names = ['name', 'age', 'height', 'weight']
tb.add_row(['autofelix', 25, 174, 65])
tb.add_row(['大神', 23, 164, 55])
tb.add_row(['飛兔小哥', 27, 184, 69.5])

# 設定左對齊
tb.align = 'l'
# 設定數位輸出格式
tb.float_format = '2.2'
# 設定邊框連線符為'*"
tb.junction_char = '*'
# 設定排序方式
tb.sortby = 'age'
# 設定左側不填充空白字元
tb.left_padding_width = 0
# 不顯示邊框
# tb.border = 0
# 修改邊框分隔符
tb.horizontal_char = '+'

print(tb)

# *++++++++++*++++*+++++++*+++++++*
# |name |age |height |weight |
# *++++++++++*++++*+++++++*+++++++*
# |大神 |23 |164 |55 |
# |autofelix |25 |174 |65 |
# |飛兔小哥 |27 |184 |69.50 |
# *++++++++++*++++*+++++++*+++++++*

七、輸出成HTML

import prettytable as pt

# 按行新增資料
tb = pt.PrettyTable()
tb.field_names = ['name', 'age', 'height', 'weight']
tb.add_row(['autofelix', 25, 174, 65])
tb.add_row(['大神', 23, 164, 55])
tb.add_row(['飛兔小哥', 27, 184, 69.5])

# 輸出HTML程式碼
s = tb.get_html_string()
print(s)

# <table>
# <thead>
# <tr>
# <th>name</th>
# <th>age</th>
# <th>height</th>
# <th>weight</th>
# </tr>
# </thead>
# <tbody>
# <tr>
# <td>autofelix</td>
# <td>25</td>
# <td>174</td>
# <td>65</td>
# </tr>
# <tr>
# <td>大神</td>
# <td>23</td>
# <td>164</td>
# <td>55</td>
# </tr>
# <tr>
# <td>飛兔小哥</td>
# <td>27</td>
# <td>184</td>
# <td>69.5</td>
# </tr>
# </tbody>
# </table>

八、複製

import prettytable as pt

# 按行新增資料
tb = pt.PrettyTable()
tb.field_names = ['name', 'age', 'height', 'weight']
tb.add_row(['autofelix', 25, 174, 65])
tb.add_row(['大神', 23, 164, 55])
tb.add_row(['飛兔小哥', 27, 184, 69.5])

tb.horizontal_char = '.'
tb2 = tb.copy()
tb.align = 'l'
tb2.align = 'r'
print(tb)
print(tb2)

# +...........+.....+........+........+
# | name | age | height | weight |
# +...........+.....+........+........+
# | autofelix | 25 | 174 | 65 |
# | 大神 | 23 | 164 | 55 |
# | 飛兔小哥 | 27 | 184 | 69.5 |
# +...........+.....+........+........+

# +...........+.....+........+........+
# | name | age | height | weight |
# +...........+.....+........+........+
# | autofelix | 25 | 174 | 65 |
# | 大神 | 23 | 164 | 55 |
# | 飛兔小哥 | 27 | 184 | 69.5 |
# +...........+.....+........+........+

到此這篇關於python 利用 PrettyTable 美化表格的文章就介紹到這了,更多相關PrettyTable 美化表格內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com