網站首頁 編程語言 正文
一、簡介
1、概述
因為信息是展現在命令行中的,眾所周知,命令行展現復雜的文本看起來著實累人,于是就想著能像表格那樣展示,那看起來就舒服多了。
prettytable庫就是這么一個工具,prettytable可以打印出美觀的表格,并且對中文支持相當好(如果有試圖自己實現打印表格,你就應該知道處理中文是多么的麻煩)
2、安裝
prettytable并非python的內置庫,通過pip install prettytable
即可安裝。
3、實例
#!/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 = PrettyTable() table.field_names = ["index", "name", 'age'] """ table.add_rows([ # 添加行 [1, "Milk", "12"], [2, "Lili", "34"] ]) 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) # 方式二 table_ = PrettyTable() table_.add_column('index', ['1', '2']) # 直接添加每一列的數據 table_.add_column('name', ['Milk', 'Lili']) table_.add_column('age', ['12', '34']) print(table_)
-
del_row
方法采用要刪除的單行的整數索引。 -
del_column
方法采用要刪除的單個列的字段名稱。 -
clear_rows
方法不接受任何參數并刪除表中的所有行 - 但保持字段名稱不變,以便您可以使用相同類型的數據重新填充它。 -
clear
方法不接受任何參數并刪除所有行和所有字段名稱。但是,這與創建一個新的表實例并不完全相同 - 與樣式相關的設置將被保留。
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")) # 注意,要打開文件 print(table) # 從JSON字符串中讀取 data = [["name", "age"], {"name": "r", "age": 23}, {"name": "d", "age": 25}, {"name": "a", "age": 24}] # 注意,要將第一個數據作為字段 table = from_json(json.dumps(data)) print(table) # 從html代碼中讀取 html = """ <table> <tr> <th>序號</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、數據庫
還可以通過數據庫的游標來進行讀取
#!/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 # 從數據庫游標中讀取 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"])) # 只輸出姓名和年齡對應的列 print(table.get_string(sortby="age", reversesort=True)) # 根據年齡進行降序排序,默認為True,升序排序
四、輸出樣式
1、內置樣式
通過set_style()可以設置表格樣式,prettytable內置了多種的樣式個人覺得MSWORD_FRIENDLY,PLAIN_COLUMNS,DEFAULT 這三種樣式看起來比較清爽,在終端下顯示表格本來看起就很累,再加上一下花里胡哨的東西看起來就更累。
除了以上推薦的三種樣式以外,還有一種樣式不得不說,那就是RANDOM,這是一種隨機的樣式,每一次打印都會在內置的樣式中隨機選擇一個,比較好玩。
#!/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 # 隨機樣式 from prettytable import DEFAULT # 默認樣式 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
- 默認外觀,用于撤消您可能所做的任何樣式更改 -
PLAIN_COLUMNS
- 一種無邊框樣式,適用于柱狀數據的命令行程序 -
MARKDOWN
- 遵循 Markdown 語法的樣式 -
ORGMODE
- 適合Org 模式語法的表格樣式 -
SINGLE_BORDER
和DOUBLE_BORDER
- 使用帶有方框圖字符的連續單/雙邊框線的樣式,以便在終端上進行更精美的顯示
2、自定義樣式
具體配置樣式,請到官網查看:傳送門
對齊: align提供了用戶設置對齊的方式,值有l,r,c方便代表左對齊,右對齊和居中 如果不設置,默認居中對齊。
邊框樣式: 在PrettyTable中,邊框由三個部分組成,橫邊框,豎邊框,和邊框連接符(橫豎交叉的鏈接符號)
#!/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 = '+' # 繪制線連接的單個字符 table.horizontal_char = '~' # 水平連接線的字符 table.vertical_char = '*' # 垂直線連接的字符 print(table)
這是庫的大概使用方法,具體請參考官方網站的內容。
原文鏈接:https://blog.csdn.net/qq_62789540/article/details/126039567
相關推薦
- 2022-01-21 什么是前端開發?什么是后端開發?
- 2022-10-30 Android?Studio調試Gradle插件詳情_Android
- 2022-12-09 C++?opencv學習之圖像像素的邏輯操作_C 語言
- 2023-05-22 PyTorch小功能之TensorDataset解讀_python
- 2022-09-06 C語言常見排序算法之交換排序(冒泡排序,快速排序)_C 語言
- 2022-03-29 python語法?range()?序列類型range_python
- 2022-11-05 Kotlin方法與Lambda表達式實踐使用介紹_Android
- 2022-02-22 Android基礎之常用控件屬性介紹_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支