zoukankan      html  css  js  c++  java
  • python模块——PrettyTable

    python模块——PrettyTable

    一. 简介

      Python通过prettytable模块将输出内容如表格方式整齐输出,可用来生成美观的ASCII格式的表格,十分实用。

      python本身并不内置,需要独立安装该第三方库。

    二、使用

    简单使用

    import prettytable as pt
    
    ## 按行添加数据
    tb = pt.PrettyTable()
    tb.field_names = ["名字","投票人数","类型","产地","上映时间","时长","年代","评分"]
    tb.add_row(["美丽人生",42995,"剧情/喜剧/爱情","意大利","1997-12-20",116,1997,9.5])
    tb.add_row(["肖申克的救赎",692795,"剧情/犯罪","美国","1994-09-10",142,1994,9.6])
    print(tb)
    
    +--------------+----------+----------------+--------+------------+------+------+------+
    |     名字     | 投票人数 |      类型      |  产地  |  上映时间  | 时长 | 年代 | 评分 |
    +--------------+----------+----------------+--------+------------+------+------+------+
    |   美丽人生   |  42995   | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 | 116  | 1997 | 9.5  |
    | 肖申克的救赎 |  692795  |   剧情/犯罪    |  美国  | 1994-09-10 | 142  | 1994 | 9.6  |
    +--------------+----------+----------------+--------+------------+------+------+------+
    

      

     

    import prettytable as pt
    
    ## 按列添加数据
    tb = pt.PrettyTable()
    tb.field_names = ["名字","投票人数","类型","产地","上映时间","时长","年代","评分"]
    tb.add_row(["美丽人生",42995,"剧情/喜剧/爱情","意大利","1997-12-20",116,1997,9.5])
    tb.add_row(["肖申克的救赎",692795,"剧情/犯罪","美国","1994-09-10",142,1994,9.6])
    tb.add_column('index',[1,2])
    print(tb)
    
    +--------------+----------+----------------+--------+------------+------+------+------+-------+
    |     名字     | 投票人数 |      类型      |  产地  |  上映时间  | 时长 | 年代 | 评分 | index |
    +--------------+----------+----------------+--------+------------+------+------+------+-------+
    |   美丽人生   |  42995   | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 | 116  | 1997 | 9.5  |   1   |
    | 肖申克的救赎 |  692795  |   剧情/犯罪    |  美国  | 1994-09-10 | 142  | 1994 | 9.6  |   2   |
    +--------------+----------+----------------+--------+------------+------+------+------+-------+
    

      

    切换输出风格

    import prettytable as pt
    
    ## 按列添加数据
    tb = pt.PrettyTable()
    tb.field_names = ["名字","投票人数","类型","产地","上映时间","时长","年代","评分"]
    tb.add_row(["美丽人生",42995,"剧情/喜剧/爱情","意大利","1997-12-20",116,1997,9.5])
    tb.add_row(["肖申克的救赎",692795,"剧情/犯罪","美国","1994-09-10",142,1994,9.6])
    tb.add_column('index',[1,2])
    ## 使用不同的输出风格
    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 -----
    |     名字     | 投票人数 |      类型      |  产地  |  上映时间  | 时长 | 年代 | 评分 | index |
    |   美丽人生   |  42995   | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 | 116  | 1997 | 9.5  |   1   |
    | 肖申克的救赎 |  692795  |   剧情/犯罪    |  美国  | 1994-09-10 | 142  | 1994 | 9.6  |   2   |
    --- style:PLAIN_COLUMNS -----
        名字            投票人数             类型              产地          上映时间         时长        年代        评分        index        
      美丽人生           42995          剧情/喜剧/爱情        意大利        1997-12-20        116         1997        9.5           1          
    肖申克的救赎         692795           剧情/犯罪            美国         1994-09-10        142         1994        9.6           2          
    --- style:MSWORD_FRIENDLY -----
    {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
            美丽人生            42995           剧情/喜剧/爱情          意大利          1997-12-20          116          1997          9.5          1     
    {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
          肖申克的救赎          692795            剧情/犯罪              美国           1994-09-10          142          1994          9.6          2     
    {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
    --- style:DEFAULT -----
    +--------------+----------+----------------+--------+------------+------+------+------+-------+
    |     名字     | 投票人数 |      类型      |  产地  |  上映时间  | 时长 | 年代 | 评分 | index |
    +--------------+----------+----------------+--------+------------+------+------+------+-------+
    |   美丽人生   |  42995   | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 | 116  | 1997 | 9.5  |   1   |
    | 肖申克的救赎 |  692795  |   剧情/犯罪    |  美国  | 1994-09-10 | 142  | 1994 | 9.6  |   2   |
    +--------------+----------+----------------+--------+------------+------+------+------+-------+
    

      

     

     

    自定义输出格式

    import prettytable as pt

    ## 按列添加数据
    tb = pt.PrettyTable()
    tb.field_names = ["名字","投票人数","类型","产地","上映时间","时长","年代","评分"]
    tb.add_row(["美丽人生",42995,"剧情/喜剧/爱情","意大利","1997-12-20",116,1997,9.5])
    tb.add_row(["肖申克的救赎",692795,"剧情/犯罪","美国","1994-09-10",142,1994,9.6])
    tb.add_column('index',[1,2])
    ## 自定义表格输出样式
    ### 设定对齐方式
    # ["l","c","r"] l:左对齐,c:中间对齐,r:右对齐
    tb.align='c'
    ### 设定数字输出格式
    tb.float_format = '1'
    ### 设定边框连接符为'*"
    tb.junction_char = "*"
    ### 设定排序方式
    tb.sortby = "投票人数"
    ### 设定左侧不填充空白字符
    tb.left_padding_width = 0
    ### 填充宽度
    tb.padding_width= 5
    print(tb)

      

    *-----------------*-------------*-------------------*-----------*---------------*---------*---------*-------------*----------*
    |    名字         |投票人数     |     类型          | 产地      | 上映时间      |时长     |年代     |  评分       |index     |
    *-----------------*-------------*-------------------*-----------*---------------*---------*---------*-------------*----------*
    |  美丽人生       | 42995       |剧情/喜剧/爱情     |意大利     |1997-12-20     |116      |1997     |9.500000     |  1       |
    |肖申克的救赎     | 692795      |  剧情/犯罪        | 美国      |1994-09-10     |142      |1994     |9.600000     |  2       |
    *-----------------*-------------*-------------------*-----------*---------------*---------*---------*-------------*----------*
    

      

     

     

    获取特定内容

    import prettytable as pt
    
    ## 按列添加数据
    tb = pt.PrettyTable()
    tb.field_names = ["名字","投票人数","类型","产地","上映时间","时长","年代","评分"]
    tb.add_row(["美丽人生",42995,"剧情/喜剧/爱情","意大利","1997-12-20",116,1997,9.5])
    tb.add_row(["肖申克的救赎",692795,"剧情/犯罪","美国","1994-09-10",142,1994,9.6])
    tb.add_column('index',[1,2])
    ## 不打印,获取表格字符串
    s = tb.get_string()
    print(s)
    
    ## 可以只获取指定列或行
    ##这里只获取'名字'与'时长'这两列,从第一行到第二行
    s = tb.get_string(fields=["名字", '时长'],start=1,end=2)
    print(s)
    

      

    +--------------+----------+----------------+--------+------------+------+------+------+-------+
    |     名字     | 投票人数 |      类型      |  产地  |  上映时间  | 时长 | 年代 | 评分 | index |
    +--------------+----------+----------------+--------+------------+------+------+------+-------+
    |   美丽人生   |  42995   | 剧情/喜剧/爱情 | 意大利 | 1997-12-20 | 116  | 1997 | 9.5  |   1   |
    | 肖申克的救赎 |  692795  |   剧情/犯罪    |  美国  | 1994-09-10 | 142  | 1994 | 9.6  |   2   |
    +--------------+----------+----------------+--------+------------+------+------+------+-------+
    +--------------+------+
    |     名字     | 时长 |
    +--------------+------+
    | 肖申克的救赎 | 142  |
    +--------------+------+
    

      

     

     

     

  • 相关阅读:
    【c++】流状态的查询和控制
    【c++】iostreeam中的类为何不可以直接定义一个无参对象呢
    异步操作超出页面超时时间
    sql转Linq的工具
    用离职换来的领悟:人生没有最佳时机
    Log4Net日志记录两种方式
    C# FileStream复制大文件
    C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、SortedList类)
    C# 读取 timestamp 时间戳 值为byte[] 类型时转换为时间戳字符串
    IIS7错误:“Web服务器被配置为不列出此目录的内容”的解决办法
  • 原文地址:https://www.cnblogs.com/-wenli/p/10321512.html
Copyright © 2011-2022 走看看