<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在開發過程中經常碰到在本地環境無法完成聯調測試的情況,必須到統一的聯機環境對接其他系統測試。往往是出現了BUG難以查詢資料記錄及時定位到錯誤出現的位置。
面對這種情況可能情況可能是一個簡單的BUG導致的,但是定位問題往往就需要很長的時間。在python程式設計中推薦非標準庫tabulate,它可以將程式執行過程中產生的資料記錄格式化的列印出來很方便我們定位問題。
通過結合簡單的紀錄檔非標準庫loguru可以很快的列印出又美觀又實用的紀錄檔記錄,loguru非標準庫其實在一些文章的原始碼範例中我們已經在使用了。
安裝過程還是通過pip的方式直接安裝,由於loguru、tabulate都是python的非標準庫,因此,沒有安裝的話需要安裝一下。預設我們都使用的清華大學的python映象站,大家可以選擇其他的映象站都可以。
pip install loguru -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip install tabulate - i https://pypi.tuna.tsinghua.edu.cn/simple/
做好準備工作以後將loguru、tabulate模組都匯入進來就OK了,沒有其他複雜的操作!
# It's a shortcut to create a logger with the default configuration. from loguru import logger # It's importing the function `tabulate` from the module `tabulate`. from tabulate import tabulate
關於非標準庫tabulate,它的列印模式其實有很多,我們平常使用到的可能就是幾種比較常見的,下面將tabulate所有的列印模式全部列舉出來,有需要的大佬可以參考。
''' "plain" "simple" "github" "grid" "fancy_grid" "pipe" "orgtbl" "jira" "presto" "psql" "rst" "mediawiki" "moinmoin" "youtrack" "html" "latex" "latex_raw" "latex_booktabs" "textile" '''
我們選擇其中的一種'grid'模式來看看效果如何,因為這種模式列印的資料記錄也是比較常見的。下面建立一個函數tab_grid_log列印一段陣列形式的資料記錄。
def tab_grid_log(): """ > This function takes a list of lists and returns a list of lists with the log of each element """ # It's defining the header of the table. header = [u'姓名', u'年齡', u'班級', u'成績', u'表現'] # It's defining a list of lists. table = [('Python', 20, 1710, 98, 5.0), ('Java', 22, 1810, 98, 4.9)] # It's printing the table with the `grid` format. logger.info(tabulate(table, headers=header, tablefmt='grid')) tab_grid_log() # 2022-09-17 18:33:00.472 | INFO | __main__:tab_grid_log:66 - +--------+--------+--------+--------+--------+ # | 姓名 | 年齡 | 班級 | 成績 | 表現 | # +========+========+========+========+========+ # | Python | 20 | 1710 | 98 | 5 | # +--------+--------+--------+--------+--------+ # | Java | 22 | 1810 | 98 | 4.9 | # +--------+--------+--------+--------+--------+ # # Process finished with exit code 0
使用grid模式的列印的資料記錄就是宮格形式很便於查詢紀錄檔中的資料記錄,也是我們經常在紀錄檔記錄中使用的一種列印方法。
接下來我們隨便選擇一種模式再次進行列印,這裡就選擇html模式來看看效果吧,這種模式之前沒有使用過我很好奇它會列印出什麼樣的效果。
def tab_html_log(): """ > This function takes a log file and returns a html table of the log file """ # It's defining the header of the table. header = [u'姓名', u'年齡', u'班級', u'成績', u'表現'] # It's defining a list of lists. table = [('Python', 20, 1710, 98, 5.0), ('Java', 22, 1810, 98, 4.9)] # It's printing the table with the `html` format. logger.info(tabulate(table, headers=header, tablefmt='html')) tab_html_log() # 2022-09-17 18:37:50.383 | INFO | __main__:tab_html_log:87 - <table> # <thead> # <tr><th>姓名 </th><th style="text-align: right;"> 年齡</th><th style="text-align: right;"> 班級</th><th style="text-align: right;"> 成績</th><th style="text-align: right;"> 表現</th></tr> # </thead> # <tbody> # <tr><td>Python</td><td style="text-align: right;"> 20</td><td style="text-align: right;"> 1710</td><td style="text-align: right;"> 98</td><td style="text-align: right;"> 5 </td></tr> # <tr><td>Java </td><td style="text-align: right;"> 22</td><td style="text-align: right;"> 1810</td><td style="text-align: right;"> 98</td><td style="text-align: right;"> 4.9</td></tr> # </tbody> # </table>
從列印結果可以看出來了,使用html模式的列印時實際上是生成html的原始碼,這還是很智慧的包括style的樣式屬性也填充了。
到此這篇關於Python tabulate結合loguru列印出美觀方便的紀錄檔記錄的文章就介紹到這了,更多相關Python tabulate loguru列印紀錄檔記錄內容請搜尋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