幾個提升工做效率的Python內置小工具

在這篇文章裏,咱們將會介紹4個Python解釋器自身提供的小工具。這些小工具在筆者的平常工做中常常用到,減小了各類時間的浪費,然而,卻很容易被你們忽略。每當有新來的同事看到我這麼使用時,都忍不住感嘆,原來Python還隱藏了這麼好用的功能。下面就來看一下Python自帶的幾個小工具html

1、1秒鐘啓動一個下載服務器python

在實際工做中,時不時會有這樣的一個需求:將文件傳給其餘同事。將文件傳給同事自己並非一個很繁瑣的工做,如今的聊天工具通常都支持文件傳輸。可是,若是須要傳送的文件較多,那麼,操做起來就會比較麻煩。此外,若是文件在遠程的服務器上,你要將文件傳給同事,則須要先將遠程服務器的文件下載到本地,而後再經過聊天工具傳給同事。再或者,你並非特別清楚要傳哪幾個文件給同事,因此,大家須要進行來回的交流。交流的時間成本是比較高的,會下降辦事效率。此時,大家須要更加高效的方法。linux

這個時候,若是你知道Python內置了一個下載服務器就可以顯著提高效率了。例如,你的同事要讓你傳的文件位於某一個目錄下,那麼,你能夠進入這個目錄,而後執行下面的命令啓動一個下載服務器:web

python -m SimpleHTTPServer複製代碼

在Python 3中,因爲對系統庫進行了從新整理,所以,使用方式會有不一樣:json

python -m http.server複製代碼

執行上面的命令就會在當前目錄下啓動一個文件下載服務器,默認打開8000端口。這個時候,你只須要將IP和端口告訴同事,讓同事本身去操做便可,很是的方便高效。瀏覽器

例如,筆者在本身的服務器上的~tempbash

~
t
e
m
p
目錄下啓動一個下載服務器:

$ ls
 app.py depoly.sh fabfile.py
 $ python -m SimpleHTTPServer
 Serving HTTP on 0.0.0.0 port 8000 ...複製代碼

使用瀏覽器訪問Python啓動的下載服務器,能夠看到一個相似於FTP下載的界面。這個時候,點擊文件下載便可,下降了你們的溝通成本。服務器

640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=

從工做原理角度來講,執行上面的命令,只是啓動了一個Python內置的web服務器。若是當前目錄下存在一個名爲index.html的文件,則默認會顯示該文件的內容;若是當前目錄下不存在這樣一個文件,則默認顯示當前目錄下的文件列表,也就是你們看到的下載服務器。

2、字符串轉換爲JSON
app

JSON是一種輕量級的數據交換格式,易於人類閱讀和編寫,同時也易於機器解析和生成。因爲JSON的諸多優勢,已經普遍使用在各個系統中,所以,咱們常常會有將JSON字符串轉換爲JSON對象的需求。工具

例如,在筆者的工做過程當中,咱們的系統會調用底層服務的API,底層服務的API通常都是以JSON的格式返回,爲了便於問題追蹤,咱們會將API返回的JSON轉換爲字符串記錄到日誌文件中。當須要分析問題時,就有可能須要將日誌文件中的JSON字符串扣出來進行分析,這個時候,須要將一個JSON字符串轉換爲JSON對象以便於閱讀。

這個需求是如此的常見,以致於使用搜索引擎搜索"JSON",處於搜索結果的第一項即是"在線JSON格式化工具"。除了打開瀏覽器,使用在線JSON格式化工具之外,咱們也可使用命令行終端的Python解釋器來解析JSON串,以下所示:

$ echo '{"job": "developer", "name": "lmx", "sex": "male"}' | python -m json.tool { "job": "developer", "name": "lmx", "sex": "male" }複製代碼

使用命令行解釋器解析JSON串很是的方便,並且,爲了便於閱讀,該工具還會自動將轉換的結果進行對齊和格式化,以下所示:

$ echo '{"address": {"province": "zhejiang", "city": "hangzhou"}, "name": "lmx", "sex": "male"}' | python -m json.tool { "address": { "city": "hangzhou", "province": "zhejiang" }, "name": "lmx", "sex": "male" }複製代碼

3、檢查第三方庫是否正確安裝

安裝完Python的第三方庫之後,如何確認這個庫已經正確安裝了呢?這個問題的答案很簡單,只須要嘗試進行import導入,若是導入沒有任何錯誤,則認爲安裝成功了。

lmx@host1:~/temp$ python
 Python 2.7.13 (default, Feb 10 2017, 20:22:22) [GCC 4.7.2] on linux2
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import paramiko
 >>>複製代碼

驗證Python的第三方庫是否安裝成功,自己也是一件很簡單的事情,可是,若是咱們使用腳本對大批量的服務器進行自動部署,又應該如何驗證第三方庫安裝成功了呢?確定不能登陸每一臺服務器進行驗證,這個時候,咱們可使用Python解釋器的−c

-
c
參數快速的執行import語句,以下所示:

lmx@host1:~/temp$ python -c "import paramiko"複製代碼

使用這種驗證方式,不但比交互式的驗證更加高效,更重要的是,可以在腳本中實現對於遠程服務器的驗證操做。

4、使用Python解壓zip壓縮包

若是讀者是一名具備關工做經驗的工程師,必定遇到過要在Linux下解壓zip格式壓縮包的需求。Linux下通常都是用tar命令建立和讀取壓縮包,可是,tar命令並不支持zip格式的壓縮包。爲了讀取zip格式的壓縮包,須要使用unzip,而大部分操做系統都沒有安裝unzip,所以,每次須要在Linux下解壓zip格式的壓縮包都會比較麻煩。

除了安裝unzip工具和編寫Python腳本解壓zip格式的壓縮包之外,也可使用zipfile模塊提供了命令行接口。讀者之後能夠在Linux下,使用Python命令建立和解壓zip格式的壓縮包。zipfile模塊提供的命令行接口包含如下幾個選項:

8481c8f592b7f349aa84a1de5c171db681516edf-l <zipfile> 顯示zip格式壓縮包中的文件列表
8481c8f592b7f349aa84a1de5c171db681516edf-c 建立zip格式壓縮包
8481c8f592b7f349aa84a1de5c171db681516edf-e 提取zip格式壓縮包
8481c8f592b7f349aa84a1de5c171db681516edf-t 驗證文件是一個有效的zip格式壓縮包

下面的命令使用Python的zipfile模塊提供的命令行接口,建立、查看和提取zip格式壓縮包:

python -m zipfile -c monty.zip spam.txt eggs.txt
python -m zipfile -e monty.zip target-dir/
python -m zipfile -l monty.zip複製代碼

總結:這篇文章介紹了4個Python內置的小工具,但願對你們有所幫助、可以提升你們的工做效率。

文章來自阿里雲開發者社區

原文連接:developer.aliyun.com/article/544…

更多Python相關內容:https://c.tb.cn/I3.CTnG

相關文章
相關標籤/搜索