<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
我們用 MySQL 使用者端查詢資料的時候,是以下面這種格式顯示的:
內容展示的非常漂亮,而 Python 有一個第三方模組叫 prettytable,專門用來將資料以上面這種格式輸出,我們來看一下用法。
類似於資料庫中的表,由表頭(或者說欄位名),以及每一行的內容組成。
from prettytable import PrettyTable # 傳入的 name、age、country 相當於表頭 tb = PrettyTable(["name", "age", "country"]) # 呼叫 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 | +----------------+-----+-------------+ """
如果在編寫的過程中,我們需要臨時新增一列,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"]) # 呼叫 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 | +----------------+-----+-------------+--------+ """
輸出內容是不是和 MySQL資料庫類似呢。
此外 prettytable 還支援從 csv、資料庫、html 等資料來源中匯入資料,但說實話,從資料來源讀取資料我們一般使用 pandas,並且還會伴隨著資料處理。而使用 prettytable 只是為了讓程式中產生的資訊,能夠以結構化的形式列印,很少會從檔案或資料庫裡面讀資料。
我們也可以輸出 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 表示開始和結束的行數(從 0 開始) print(tb.get_string(fields=["name", "age"], start=1, end=3)) """ +---------------+-----+ | name | age | +---------------+-----+ | Shimada Genji | 35 | | Shimada Hanzo | 38 | +---------------+-----+ """ # 此外可以用來進行排序 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 | +----------------+-----+-------------+--------+ """
表格也支援幾種不同的樣式,供我們選擇。
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 . ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++; """
說實話,還是預設的 DEFAULT 樣式最好看。
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 代表左對齊,c 代表居中,r 代表右對齊 # 預設居中 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 | +----------------+-----+-------------+--------+ """
在 PrettyTable 中,邊框由三個部分組成:橫邊框,豎邊框,和邊框連線符,我們都可以修改。
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"]) # 是否顯示邊框,預設為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 > ~^^^^^^^^^^^^^^^^~^^^^^~^^^^^^^^^^^^^~^^^^^^^^~ """
到此這篇關於Python利用prettytable實現格式化輸出內容的文章就介紹到這了,更多相關Python prettytable格式化輸出內容內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45