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

    目錄

    楔子

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

    內(nèi)容展示得非常漂亮,而 Python 有一個第三方模塊叫 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?|+----------------+-----+-------------+"""

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

    from?prettytable?import?PrettyTabletb?=?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ù)據(jù)源讀取數(shù)據(jù)我們一般使用 pandas,并且還會伴隨著數(shù)據(jù)處理。而使用 prettytable 只是為了讓程序中產(chǎn)生得信息,能夠以結(jié)構(gòu)化得形式打印,很少會從文件或數(shù)據(jù)庫里面讀數(shù)據(jù)。

    輸出指定行、指定列

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

    from?prettytable?import?PrettyTabletb?=?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#?之前得樣式就是?DEFAULTtb.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?????.;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++;"""

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

    設(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"])#?l?代表左對齊,c?代表居中,r?代表右對齊#?默認(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 中,邊框由三個部分組成:橫邊框,豎邊框,和邊框連接符,我們都可以修改。

    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)為Truetb.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實現(xiàn)格式化輸出內(nèi)容得內(nèi)容就介紹到這了,更多相關(guān)Python prettytable格式化輸出內(nèi)容內(nèi)容請搜索之家以前得內(nèi)容或繼續(xù)瀏覽下面得相關(guān)內(nèi)容希望大家以后多多支持之家!

    聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
    發(fā)表評論
    更多 網(wǎng)友評論1 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 国产一区二区三区精品久久呦| 国产一区二区三区小说| 亚州国产AV一区二区三区伊在| 国产一区二区精品在线观看| 精品一区二区三区在线视频观看 | www亚洲精品少妇裸乳一区二区| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 国产主播福利一区二区| 色天使亚洲综合一区二区| 国产高清在线精品一区小说| 精品一区二区三区免费| 亚洲A∨精品一区二区三区下载| 精品无码一区二区三区爱欲九九 | 亚洲熟妇av一区二区三区漫画| 国产乱码精品一区二区三区中文| 日韩一区二区三区无码影院| 亚洲熟女乱色一区二区三区| 日韩社区一区二区三区| 国产乱码精品一区二区三区中文| 波多野结衣一区二区三区| 区三区激情福利综合中文字幕在线一区| 久久精品一区二区| 美日韩一区二区三区| 久久久久成人精品一区二区 | 亚洲免费视频一区二区三区| 亚洲成在人天堂一区二区| 国产乱码精品一区二区三区四川| 中文字幕Av一区乱码| 国产精品成人99一区无码| 国产suv精品一区二区33| 日本一区二区三区四区视频| 人妻体内射精一区二区三四| 国产伦精品一区二区三区四区| 风间由美性色一区二区三区| 日韩电影在线观看第一区| 亚洲日韩一区二区三区| 国语精品一区二区三区| 小泽玛丽无码视频一区| 国精产品一区一区三区MBA下载| 无码人妻AⅤ一区二区三区| 一区二区三区美女视频|