PrettyTable 美化表格
autofelix 人气:0一、安装
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 | # +...........+.....+........+........+
加载全部内容