• 技术文章 >后端开发 >Python教程

    python实用库学习PrettyTable的详细说明

    高洛峰高洛峰2017-03-20 09:30:15原创3737

    python实用库:PrettyTable 学习

    PrettyTable说明

    PrettyTable 是python中的一个第三方库,可用来生成美观的ASCII格式的表格,十分实用。
    以下为官方介绍:

    A simple Python library for easily displaying tabular data in a visually appealing ASCII table format.
    PrettyTable is a simple Python library designed to make it quick and easy to represent tabular data in visually appealing ASCII tables. It was inspired by the ASCII tables used in the PostgreSQL shell psql. PrettyTable allows for selection of which columns are to be printed, independent alignment of columns (left or right justified or centred) and printing of “sub-tables” by specifying a row range.

    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 = 0print(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 = 0print(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)
    <table>
        <tr>
            <th>City name</th>
            <th>Area</th>
            <th>Population</th>
            <th>Annual Rainfall</th>
        </tr>
        <tr>
            <td>Adelaide</td>
            <td>1295</td>
            <td>1158259</td>
            <td>600.50</td>
        </tr>
        <tr>
            <td>Brisbane</td>
            <td>5905</td>
            <td>1857594</td>
            <td>1146.40</td>
        </tr>
        <tr>
            <td>Darwin</td>
            <td>112</td>
            <td>120900</td>
            <td>1714.70</td>
        </tr>
        <tr>
            <td>Hobart</td>
            <td>1357</td>
            <td>205556</td>
            <td>619.50</td>
        </tr>
    </table>
    ## 使用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 |
    +-----------+------+------------+-----------------+

    php入门到就业线上直播课:查看学习

    以上就是python实用库学习PrettyTable的详细说明的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    前端(VUE)零基础到就业课程:点击学习

    清晰的学习路线+老师随时辅导答疑

    自己动手写 PHP MVC 框架:点击学习

    快速了解MVC架构、了解框架底层运行原理

    专题推荐:python PrettyTable
    上一篇:python的爬虫技术爬去糗事百科的的方法详解 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • ❤️‍🔥共22门课程,总价3725元,会员免费学• ❤️‍🔥接口自动化测试不想写代码?• Python NumPy教程之数据类型对象• 使用Python处理KNN分类算法• Python标准库中的logging用法示例• python发腾讯微博代码分享• 在Django的视图(View)外使用Session的方法
    1/1

    PHP中文网