亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python prettytable模塊應(yīng)用詳解

 更新時(shí)間:2022年09月23日 14:07:36   作者:A-L-Kun  
PrettyTable 是python中的一個(gè)第三方庫(kù),可用來(lái)生成美觀的ASCII格式的表格,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧

一、簡(jiǎn)介

1、概述

因?yàn)樾畔⑹钦宫F(xiàn)在命令行中的,眾所周知,命令行展現(xiàn)復(fù)雜的文本看起來(lái)著實(shí)累人,于是就想著能像表格那樣展示,那看起來(lái)就舒服多了。

prettytable庫(kù)就是這么一個(gè)工具,prettytable可以打印出美觀的表格,并且對(duì)中文支持相當(dāng)好(如果有試圖自己實(shí)現(xiàn)打印表格,你就應(yīng)該知道處理中文是多么的麻煩)

2、安裝

prettytable并非python的內(nèi)置庫(kù),通過(guò)pip install prettytable即可安裝。

3、實(shí)例

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__author__ = "A.L.Kun"
__file__ = "demo02.py"
__email__ = "liu.zhong.kun@foxmail.com"
from prettytable import PrettyTable
table = PrettyTable(["index", "name", 'age'])  # 實(shí)例化對(duì)象
"""
# 效果一樣
table = PrettyTable()
table.field_names = ["index", "name", 'age']
"""
table.add_rows([  # 添加行
    [1, "Milk", "12"],
    [2, "Lili", "34"]
])
print(table)  # 把表格輸出

二、添加數(shù)據(jù)

1、直接添加

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__author__ = "A.L.Kun"
__file__ = "demo02.py"
__email__ = "liu.zhong.kun@foxmail.com"
from prettytable import PrettyTable
# 方式一
table = PrettyTable(["index", "name", 'age'])  # 實(shí)例化對(duì)象
table.add_rows([  # 添加行
    [1, "Milk", "12"],
    [2, "Lili", "34"]
])
print(table)
# 方式二
table_ = PrettyTable()
table_.add_column('index', ['1', '2'])  # 直接添加每一列的數(shù)據(jù)
table_.add_column('name', ['Milk', 'Lili'])
table_.add_column('age', ['12', '34'])
print(table_)
  • del_row方法采用要?jiǎng)h除的單行的整數(shù)索引。
  • del_column方法采用要?jiǎng)h除的單個(gè)列的字段名稱(chēng)。
  • clear_rows方法不接受任何參數(shù)并刪除表中的所有行 - 但保持字段名稱(chēng)不變,以便您可以使用相同類(lèi)型的數(shù)據(jù)重新填充它。
  • clear方法不接受任何參數(shù)并刪除所有行和所有字段名稱(chēng)。但是,這與創(chuàng)建一個(gè)新的表實(shí)例并不完全相同 - 與樣式相關(guān)的設(shè)置將被保留。

2、文件讀取

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__author__ = "A.L.Kun"
__file__ = "demo02.py"
__email__ = "liu.zhong.kun@foxmail.com"
import json
from prettytable import from_csv, from_json, from_html
# 從CSV文件中讀取
table = from_csv(open("test.csv", "r", encoding="utf-8"))  # 注意,要打開(kāi)文件
print(table)
# 從JSON字符串中讀取
data = [["name", "age"], {"name": "r", "age": 23}, {"name": "d", "age": 25}, {"name": "a", "age": 24}]  # 注意,要將第一個(gè)數(shù)據(jù)作為字段
table = from_json(json.dumps(data))  
print(table)
# 從html代碼中讀取
html = """
<table>
<tr>
<th>序號(hào)</th><th>姓名</th><th>年齡</th>
</tr>
<tr>
<td>1</td><td>a</td><td>23</td>
</tr>
<tr>
<td>2</td><td>b</td><td>24</td>
</tr>
</table>
"""
table = from_html(html)
print(table)

3、數(shù)據(jù)庫(kù)

還可以通過(guò)數(shù)據(jù)庫(kù)的游標(biāo)來(lái)進(jìn)行讀取

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__author__ = "A.L.Kun"
__file__ = "demo02.py"
__email__ = "liu.zhong.kun@foxmail.com"
import sqlite3
from prettytable import from_db_cursor
# 從數(shù)據(jù)庫(kù)游標(biāo)中讀取
conn = sqlite3.connect("USERINFO.db")
cur = conn.cursor()
cur.execute("SELECT * FROM res") 
table = from_db_cursor(cur)
print(table)

三、輸出方式

1、全部輸出

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__author__ = "A.L.Kun"
__file__ = "demo02.py"
__email__ = "liu.zhong.kun@foxmail.com"
from prettytable import PrettyTable
table = PrettyTable(["index", "name", 'age'])
table.add_rows([
    [1, "Milk", "12"],
    [2, "Lili", "34"]
])
print(table)  # 把表格輸出
print(table.get_html_string())  # 輸出表格的html樣式,還可以輸出csv, json, latex

2、選擇性輸出

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__author__ = "A.L.Kun"
__file__ = "demo02.py"
__email__ = "liu.zhong.kun@foxmail.com"
from prettytable import PrettyTable
table = PrettyTable(["index", "name", 'age'])
table.add_rows([
    [1, "Milk", "12"],
    [2, "Lili", "34"],
    [3, "Lili1", "35"]
])
print(table[0: 2])  # 切片輸出,輸出前2行  print(table.get_string(start=0, end=2))
print(table.get_string(fields=["name", "age"]))  # 只輸出姓名和年齡對(duì)應(yīng)的列
print(table.get_string(sortby="age", reversesort=True))  # 根據(jù)年齡進(jìn)行降序排序,默認(rèn)為T(mén)rue,升序排序

四、輸出樣式

1、內(nèi)置樣式

通過(guò)set_style()可以設(shè)置表格樣式,prettytable內(nèi)置了多種的樣式個(gè)人覺(jué)得MSWORD_FRIENDLY,PLAIN_COLUMNS,DEFAULT 這三種樣式看起來(lái)比較清爽,在終端下顯示表格本來(lái)看起就很累,再加上一下花里胡哨的東西看起來(lái)就更累。

除了以上推薦的三種樣式以外,還有一種樣式不得不說(shuō),那就是RANDOM,這是一種隨機(jī)的樣式,每一次打印都會(huì)在內(nèi)置的樣式中隨機(jī)選擇一個(gè),比較好玩。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__author__ = "A.L.Kun"
__file__ = "demo02.py"
__email__ = "liu.zhong.kun@foxmail.com"
from prettytable import PrettyTable
from prettytable import MSWORD_FRIENDLY  # 電子文檔模式
from prettytable import PLAIN_COLUMNS  # 普通文本模式
from prettytable import RANDOM  # 隨機(jī)樣式
from prettytable import DEFAULT  # 默認(rèn)樣式
table = PrettyTable(["index", "name", 'age'])
table.add_rows([
    [1, "Milk", "12"],
    [2, "Lili", "34"],
    [3, "Lili1", "35"]
])
# table.set_style(MSWORD_FRIENDLY)
# table.set_style(PLAIN_COLUMNS)
table.set_style(RANDOM)
print(table)
  • DEFAULT- 默認(rèn)外觀,用于撤消您可能所做的任何樣式更改
  • PLAIN_COLUMNS- 一種無(wú)邊框樣式,適用于柱狀數(shù)據(jù)的命令行程序
  • MARKDOWN- 遵循 Markdown 語(yǔ)法的樣式
  • ORGMODE- 適合Org 模式語(yǔ)法的表格樣式
  • SINGLE_BORDERDOUBLE_BORDER- 使用帶有方框圖字符的連續(xù)單/雙邊框線(xiàn)的樣式,以便在終端上進(jìn)行更精美的顯示

2、自定義樣式

具體配置樣式,請(qǐng)到官網(wǎng)查看:傳送門(mén)

對(duì)齊: align提供了用戶(hù)設(shè)置對(duì)齊的方式,值有l(wèi),r,c方便代表左對(duì)齊,右對(duì)齊和居中 如果不設(shè)置,默認(rèn)居中對(duì)齊。

邊框樣式: 在PrettyTable中,邊框由三個(gè)部分組成,橫邊框,豎邊框,和邊框連接符(橫豎交叉的鏈接符號(hào))

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__author__ = "A.L.Kun"
__file__ = "demo02.py"
__email__ = "liu.zhong.kun@foxmail.com"
from prettytable import PrettyTable
table = PrettyTable(["index", "name", 'age'])
table.add_rows([
    [1, "Milk", "12"],
    [2, "Lili", "34"],
    [3, "Lili1", "35"]
])
table.border = True  # 是否顯示邊框
table.junction_char = '+'  # 繪制線(xiàn)連接的單個(gè)字符
table.horizontal_char = '~'  # 水平連接線(xiàn)的字符
table.vertical_char = '*'  # 垂直線(xiàn)連接的字符
print(table)

這是庫(kù)的大概使用方法,具體請(qǐng)參考官方網(wǎng)站的內(nèi)容。

到此這篇關(guān)于Python prettytable模塊應(yīng)用詳解的文章就介紹到這了,更多相關(guān)Python prettytable內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論