欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python利用prettytable實(shí)現(xiàn)格式化輸出內(nèi)容

 更新時(shí)間:2022年07月21日 16:02:13   作者:古明地覺  
Python有一個(gè)第三方模塊叫?prettytable,專門用來將數(shù)據(jù)格式輸出。本文將通過示例為大家詳細(xì)講講prettytable的用法,感興趣的可以了解一下

楔子

我們用 MySQL 客戶端查詢數(shù)據(jù)的時(shí)候,是以下面這種格式顯示的:

內(nèi)容展示的非常漂亮,而 Python 有一個(gè)第三方模塊叫 prettytable,專門用來將數(shù)據(jù)以上面這種格式輸出,我們來看一下用法。

添加表頭、添加行、添加列

類似于數(shù)據(jù)庫中的表,由表頭(或者說字段名),以及每一行的內(nèi)容組成。

from?prettytable?import?PrettyTable

#?傳入的?name、age、country?相當(dāng)于表頭
tb?=?PrettyTable(["name",?"age",?"country"])
#?調(diào)用?add_row?添加行記錄
tb.add_row(["Jack?Morrison",?49,?"America"])
tb.add_row(["Shimada?Genji",?35,?"Japan"])
tb.add_row(["Shimada?Hanzo",?38,?"Japan"])
tb.add_row(["Angela?Ziegler",?37,?"Switzerland"])

print(tb)
"""
+----------------+-----+-------------+
|??????name??????|?age?|???country???|
+----------------+-----+-------------+
|?Jack?Morrison??|??49?|???America???|
|?Shimada?Genji??|??35?|????Japan????|
|?Shimada?Hanzo??|??38?|????Japan????|
|?Angela?Ziegler?|??37?|?Switzerland?|
+----------------+-----+-------------+
"""

如果在編寫的過程中,我們需要臨時(shí)添加一列,prettytable 也是支持的。

from?prettytable?import?PrettyTable

tb?=?PrettyTable(["name",?"age",?"country"])
tb.add_row(["Jack?Morrison",?49,?"America"])
tb.add_row(["Shimada?Genji",?35,?"Japan"])
tb.add_row(["Shimada?Hanzo",?38,?"Japan"])
tb.add_row(["Angela?Ziegler",?37,?"Switzerland"])

#?調(diào)用?add_column?添加一列
tb.add_column("gender",
??????????????["male",?"male",?"male",?"female"])
print(tb)
"""
+----------------+-----+-------------+--------+
|??????name??????|?age?|???country???|?gender?|
+----------------+-----+-------------+--------+
|?Jack?Morrison??|??49?|???America???|??male??|
|?Shimada?Genji??|??35?|????Japan????|??male??|
|?Shimada?Hanzo??|??38?|????Japan????|??male??|
|?Angela?Ziegler?|??37?|?Switzerland?|?female?|
+----------------+-----+-------------+--------+
"""

輸出內(nèi)容是不是和 MySQL數(shù)據(jù)庫類似呢。

此外 prettytable 還支持從 csv、數(shù)據(jù)庫、html 等數(shù)據(jù)源中導(dǎo)入數(shù)據(jù),但說實(shí)話,從數(shù)據(jù)源讀取數(shù)據(jù)我們一般使用 pandas,并且還會(huì)伴隨著數(shù)據(jù)處理。而使用 prettytable 只是為了讓程序中產(chǎn)生的信息,能夠以結(jié)構(gòu)化的形式打印,很少會(huì)從文件或數(shù)據(jù)庫里面讀數(shù)據(jù)。

輸出指定行、指定列

我們也可以輸出 table 的指定行、指定列。

from?prettytable?import?PrettyTable

tb?=?PrettyTable(["name",?"age",?"country",?"gender"])
tb.add_row(["Jack?Morrison",?49,?"America",?"male"])
tb.add_row(["Shimada?Genji",?35,?"Japan",?"male"])
tb.add_row(["Shimada?Hanzo",?38,?"Japan",?"male"])
tb.add_row(["Angela?Ziegler",?37,?"Switzerland",?"female"])
#?只輸出?name?和?age?兩列
#?start?和?end?表示開始和結(jié)束的行數(shù)(從?0?開始)
print(tb.get_string(fields=["name",?"age"],
????????????????????start=1,?end=3))
"""
+---------------+-----+
|??????name?????|?age?|
+---------------+-----+
|?Shimada?Genji?|??35?|
|?Shimada?Hanzo?|??38?|
+---------------+-----+
"""

#?此外可以用來進(jìn)行排序
print(tb.get_string(sortby="age",?reversesort=True))
"""
+----------------+-----+-------------+--------+
|??????name??????|?age?|???country???|?gender?|
+----------------+-----+-------------+--------+
|?Jack?Morrison??|??49?|???America???|??male??|
|?Shimada?Hanzo??|??38?|????Japan????|??male??|
|?Angela?Ziegler?|??37?|?Switzerland?|?female?|
|?Shimada?Genji??|??35?|????Japan????|??male??|
+----------------+-----+-------------+--------+
"""

設(shè)置表格樣式

表格也支持幾種不同的樣式,供我們選擇。

from?prettytable?import?*

tb?=?PrettyTable(["name",?"age",?"country",?"gender"])
tb.add_row(["Jack?Morrison",?49,?"America",?"male"])
tb.add_row(["Shimada?Genji",?35,?"Japan",?"male"])
tb.add_row(["Shimada?Hanzo",?38,?"Japan",?"male"])
tb.add_row(["Angela?Ziegler",?37,?"Switzerland",?"female"])

#?樣式支持以下幾種:
#?DEFAULT、MSWORD_FRIENDLY、PLAIN_COLUMNS、RANDOM
#?之前的樣式就是?DEFAULT
tb.set_style(MSWORD_FRIENDLY)
print(tb)
"""
|??????name??????|?age?|???country???|?gender?|
|?Jack?Morrison??|??49?|???America???|??male??|
|?Shimada?Genji??|??35?|????Japan????|??male??|
|?Shimada?Hanzo??|??38?|????Japan????|??male??|
|?Angela?Ziegler?|??37?|?Switzerland?|?female?|
"""

tb.set_style(PLAIN_COLUMNS)
print(tb)
"""
?????name?????????????age??????????country??????????gender????????
Jack?Morrison??????????49??????????America???????????male?????????
Shimada?Genji??????????35???????????Japan????????????male?????????
Shimada?Hanzo??????????38???????????Japan????????????male?????????
Angela?Ziegler?????????37????????Switzerland????????female?????
"""

tb.set_style(RANDOM)
print(tb)
"""
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;
.????????name??????????????age???????????country???????????gender?????.
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;
.???Jack?Morrison???????????49???????????America????????????male??????.
.???Shimada?Genji???????????35????????????Japan?????????????male??????.
.???Shimada?Hanzo???????????38????????????Japan?????????????male??????.
.???Angela?Ziegler??????????37?????????Switzerland?????????female?????.
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;
"""

說實(shí)話,還是默認(rèn)的 DEFAULT 樣式最好看。

設(shè)置對(duì)齊方式

from?prettytable?import?*

tb?=?PrettyTable(["name",?"age",?"country",?"gender"])
tb.add_row(["Jack?Morrison",?49,?"America",?"male"])
tb.add_row(["Shimada?Genji",?35,?"Japan",?"male"])
tb.add_row(["Shimada?Hanzo",?38,?"Japan",?"male"])
tb.add_row(["Angela?Ziegler",?37,?"Switzerland",?"female"])

#?l?代表左對(duì)齊,c?代表居中,r?代表右對(duì)齊
#?默認(rèn)居中
tb.align["name"]?=?"l"
tb.align["age"]?=?"c"
tb.align["country"]?=?"r"
print(tb)
"""
+----------------+-----+-------------+--------+
|?name???????????|?age?|?????country?|?gender?|
+----------------+-----+-------------+--------+
|?Jack?Morrison??|??49?|?????America?|??male??|
|?Shimada?Genji??|??35?|???????Japan?|??male??|
|?Shimada?Hanzo??|??38?|???????Japan?|??male??|
|?Angela?Ziegler?|??37?|?Switzerland?|?female?|
+----------------+-----+-------------+--------+
"""

設(shè)置邊框樣式

在 PrettyTable 中,邊框由三個(gè)部分組成:橫邊框,豎邊框,和邊框連接符,我們都可以修改。

from?prettytable?import?*

tb?=?PrettyTable(["name",?"age",?"country",?"gender"])
tb.add_row(["Jack?Morrison",?49,?"America",?"male"])
tb.add_row(["Shimada?Genji",?35,?"Japan",?"male"])
tb.add_row(["Shimada?Hanzo",?38,?"Japan",?"male"])
tb.add_row(["Angela?Ziegler",?37,?"Switzerland",?"female"])

#?是否顯示邊框,默認(rèn)為True
tb.border?=?True
#?橫邊框
tb.horizontal_char?=?'^'
#?豎邊框
tb.vertical_char?=?'>'
#?邊框連接符
tb.junction_char='~'

print(tb)
"""
~^^^^^^^^^^^^^^^^~^^^^^~^^^^^^^^^^^^^~^^^^^^^^~
>??????name??????>?age?>???country???>?gender?>
~^^^^^^^^^^^^^^^^~^^^^^~^^^^^^^^^^^^^~^^^^^^^^~
>?Jack?Morrison??>??49?>???America???>??male??>
>?Shimada?Genji??>??35?>????Japan????>??male??>
>?Shimada?Hanzo??>??38?>????Japan????>??male??>
>?Angela?Ziegler?>??37?>?Switzerland?>?female?>
~^^^^^^^^^^^^^^^^~^^^^^~^^^^^^^^^^^^^~^^^^^^^^~
"""

到此這篇關(guān)于Python利用prettytable實(shí)現(xiàn)格式化輸出內(nèi)容的文章就介紹到這了,更多相關(guān)Python prettytable格式化輸出內(nèi)容內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Python制作ASCII碼轉(zhuǎn)換器

    基于Python制作ASCII碼轉(zhuǎn)換器

    ASCII碼是基于拉丁字母的一套電腦編碼系統(tǒng),主要用于顯示現(xiàn)代英語和其他西歐語言。本文將利用Python制作一個(gè)ASCII碼轉(zhuǎn)換器,感興趣的可以動(dòng)手試一試
    2022-02-02
  • python實(shí)現(xiàn)在遍歷列表時(shí),直接對(duì)dict元素增加字段的方法

    python實(shí)現(xiàn)在遍歷列表時(shí),直接對(duì)dict元素增加字段的方法

    今天小編就為大家分享一篇python實(shí)現(xiàn)在遍歷列表時(shí),直接對(duì)dict元素增加字段的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python3 tkinter實(shí)現(xiàn)添加圖片和文本

    python3 tkinter實(shí)現(xiàn)添加圖片和文本

    這篇文章主要為大家詳細(xì)介紹了python3 tkinter實(shí)現(xiàn)添加圖片和文本,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Python爬蟲爬取王者榮耀英雄信息并保存到圖數(shù)據(jù)庫的操作方法

    Python爬蟲爬取王者榮耀英雄信息并保存到圖數(shù)據(jù)庫的操作方法

    本文介紹了如何使用Python爬蟲技術(shù)從王者榮耀官方獲取英雄信息,并將數(shù)據(jù)保存到圖數(shù)據(jù)庫中,文章詳細(xì)說明了爬取英雄名稱、類型及皮膚名稱的過程,并展示了創(chuàng)建英雄類型節(jié)點(diǎn)和英雄信息節(jié)點(diǎn)的方法
    2024-09-09
  • 17個(gè)Python小技巧分享

    17個(gè)Python小技巧分享

    這篇文章主要給大家分享了17個(gè)Python小技巧,都是些基礎(chǔ)的非常常用也非常實(shí)用的小技巧,這里推薦給大家。
    2015-01-01
  • 詳細(xì)聊一聊為什么Python沒有main函數(shù)

    詳細(xì)聊一聊為什么Python沒有main函數(shù)

    相信很多初學(xué)python的人看代碼的時(shí)候都會(huì)先找一下main()方法,從main往下看,但事實(shí)上python中是沒有你理解中的“main()”方法的,下面這篇文章主要給大家介紹了關(guān)于為什么Python沒有main函數(shù)的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • python的pip配置的國內(nèi)鏡像的實(shí)現(xiàn)

    python的pip配置的國內(nèi)鏡像的實(shí)現(xiàn)

    本文主要介紹了python的pip配置的國內(nèi)鏡像的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-05-05
  • django云端留言板實(shí)例詳解

    django云端留言板實(shí)例詳解

    這篇文章主要介紹了django云端留言板實(shí)例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • 如何使用PyTorch優(yōu)化一個(gè)邊緣檢測(cè)器

    如何使用PyTorch優(yōu)化一個(gè)邊緣檢測(cè)器

    這篇文章主要給大家介紹了關(guān)于如何使用PyTorch優(yōu)化一個(gè)邊緣檢測(cè)器的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-09-09
  • ubuntu系統(tǒng)下使用pm2設(shè)置nodejs開機(jī)自啟動(dòng)的方法

    ubuntu系統(tǒng)下使用pm2設(shè)置nodejs開機(jī)自啟動(dòng)的方法

    今天小編就為大家分享一篇ubuntu系統(tǒng)下使用pm2設(shè)置nodejs開機(jī)自啟動(dòng)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05

最新評(píng)論