日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python?利用?PrettyTable?美化表格_python

作者:autofelix ? 更新時間: 2022-06-06 編程語言

一、安裝

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)

# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
nameageheightweight
autofelix2517465
大神2316455
飛兔小哥2718469.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.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 |
# +...........+.....+........+........+

原文鏈接:https://blog.51cto.com/autofelix/5160613

欄目分類
最近更新