在這篇文章裡,我們将會介紹4個Python解釋器自身提供的小工具。這些小工具在筆者的日常工作中經常用到,減少了各種時間的浪費,然而,卻很容易被大家忽略。每當有新來的同僚看到我這麼使用時,都忍不住感歎,原來Python還隐藏了這麼好用的功能。下面就來看一下Python自帶的幾個小工具
一、1秒鐘啟動一個下載下傳伺服器
在實際工作中,時不時會有這樣的一個需求:将檔案傳給其他同僚。将檔案傳給同僚本身并不是一個很繁瑣的工作,現在的聊天工具一般都支援檔案傳輸。但是,如果需要傳送的檔案較多,那麼,操作起來就會比較麻煩。此外,如果檔案在遠端的伺服器上,你要将檔案傳給同僚,則需要先将遠端伺服器的檔案下載下傳到本地,然後再通過聊天工具傳給同僚。再或者,你并不是特别清楚要傳哪幾個檔案給同僚,是以,你們需要進行來回的交流。交流的時間成本是比較高的,會降低辦事效率。此時,你們需要更加高效的方法。
這個時候,如果你知道Python内置了一個下載下傳伺服器就能夠顯著提升效率了。例如,你的同僚要讓你傳的檔案位于某一個目錄下,那麼,你可以進入這個目錄,然後執行下面的指令啟動一個下載下傳伺服器:
在Python 3中,由于對系統庫進行了重新整理,是以,使用方式會有不同:
執行上面的指令就會在目前目錄下啟動一個檔案下載下傳伺服器,預設打開8000端口。這個時候,你隻需要将IP和端口告訴同僚,讓同僚自己去操作即可,非常的友善高效。
例如,筆者在自己的伺服器上的`~/temp`目錄下啟動一個下載下傳伺服器:
使用浏覽器通路Python啟動的下載下傳伺服器,可以看到一個類似于FTP下載下傳的界面。這個時候,點選檔案下載下傳即可,降低了大家的溝通成本。

從工作原理角度來說,執行上面的指令,隻是啟動了一個Python内置的web伺服器。如果目前目錄下存在一個名為index.html的檔案,則預設會顯示該檔案的内容;如果目前目錄下不存在這樣一個檔案,則預設顯示目前目錄下的檔案清單,也就是大家看到的下載下傳伺服器。
二、字元串轉換為JSON
JSON是一種輕量級的資料交換格式,易于人類閱讀和編寫,同時也易于機器解析和生成。由于JSON的諸多優點,已經廣泛使用在各個系統中,是以,我們經常會有将JSON字元串轉換為JSON對象的需求。
例如,在筆者的工作過程中,我們的系統會調用底層服務的API,底層服務的API一般都是以JSON的格式傳回,為了便于問題追蹤,我們會将API傳回的JSON轉換為字元串記錄到日志檔案中。當需要分析問題時,就有可能需要将日志檔案中的JSON字元串扣出來進行分析,這個時候,需要将一個JSON字元串轉換為JSON對象以便于閱讀。
這個需求是如此的常見,以至于使用搜尋引擎搜尋"JSON",處于搜尋結果的第一項便是"線上JSON格式化工具"。除了打開浏覽器,使用線上JSON格式化工具以外,我們也可以使用指令行終端的Python解釋器來解析JSON串,如下所示:
使用指令行解釋器解析JSON串非常的友善,而且,為了便于閱讀,該工具還會自動将轉換的結果進行對齊和格式化,如下所示:
三、檢查第三方庫是否正确安裝
安裝完Python的第三方庫以後,如何确認這個庫已經正确安裝了呢?這個問題的答案很簡單,隻需要嘗試進行import導入,如果導入沒有任何錯誤,則認為安裝成功了。
驗證Python的第三方庫是否安裝成功,本身也是一件很簡單的事情,但是,如果我們使用腳本對大批量的伺服器進行自動部署,又應該如何驗證第三方庫安裝成功了呢?肯定不能登入每一台伺服器進行驗證,這個時候,我們可以使用Python解釋器的`-c`參數快速的執行import語句,如下所示:
使用這種驗證方式,不但比互動式的驗證更加高效,更重要的是,能夠在腳本中實作對于遠端伺服器的驗證操作。
四、使用Python解壓zip壓縮包
如果讀者是一名具有關工作經驗的工程師,一定遇到過要在Linux下解壓zip格式壓縮包的需求。Linux下一般都是用tar指令建立和讀取壓縮包,但是,tar指令并不支援zip格式的壓縮包。為了讀取zip格式的壓縮包,需要使用unzip,而大部分作業系統都沒有安裝unzip,是以,每次需要在Linux下解壓zip格式的壓縮包都會比較麻煩。
除了安裝unzip工具和編寫Python腳本解壓zip格式的壓縮包以外,也可以使用zipfile子產品提供了指令行接口。讀者以後可以在Linux下,使用Python指令建立和解壓zip格式的壓縮包。zipfile子產品提供的指令行接口包含以下幾個選項:
-l <zipfile> 顯示zip格式壓縮包中的檔案清單
-c 建立zip格式壓縮包
-e 提取zip格式壓縮包
-t 驗證檔案是一個有效的zip格式壓縮包
下面的指令使用Python的zipfile子產品提供的指令行接口,建立、檢視和提取zip格式壓縮包:
總結:這篇文章介紹了4個Python内置的小工具,希望對大家有所幫助、能夠提高大家的工作效率。
原文釋出時間為:2017-04-01
本文作者:賴明星