2014年2月23日 星期日

Docopt - 比 argparse 更方便的 command line parser

其實不管用任何語言 c or python 在寫 console program 的時候,都會遇到一個討厭但是你又不得不做的東西,那就是 arguments parsing,就是輸入一堆參數,然後對應到不同的功能。

在 python 裡面其實已經有些 build-in module 可以用 ( argparse ),不過說真的,這 module 不得我心,寫起來覺得累贅,有點麻煩。改個小地方就要重寫一部分,加上一個參數,就會增加不少行數。

呼!這樣我寫完就下班了,人生苦短啊!

所以我就開始找相關的 module,竟然有個很方便的 module - docopt (PyCon UK 2012)。

不廢話,看個影片:




很美吧!簡潔有力,人生是彩色的啊!

作者很厲害把註解直接拿來做 parser 所需要的 patten,順便拿來當 help file。然後給你個dictionary 然後就打完收工。

這樣就完了嘛?還沒,不用急著開 terminal,現在是什麼時代,一定有提供web的試用版本(話說正式版也是免費的)。

http://try.docopt.org/

Installation:


GitHub: https://github.com/docopt/docopt

直接用 pip 來安裝

(env) $ pip install docopt 

其實不要以為只有 python 有這些東西,其實 Ruby, PHP, Lua, CoffeeScript 都已經有移植的版本!

一年多就有四個移植的版本,真是有趣啊!
這也就是 opensource 的本質與好處吧!

歡迎大家互相交流! :)








About 2014

新的年,很多東西改變了,環境也改變了,不變的是希望成長的心態,期望還可以在進步。

這Blog也荒廢很久,沒有在更新。其實去年兩年一直有在想要找時間重新來寫些東西,不過就是沒有個起頭,也是因為身邊很多事情需要自己去處理,所以也沒有太多的精力來寫文章。

一直到了最近,開始覺得自己好像退步,很多東西變得不夠敏銳,似乎有老化的傾向。所以是該準備來重新開始寫一些文章,記錄自己看到的事情與觀點。

這兩年主要的火力都放在cloud的部份去發展,所以python變成我的主力語言,雖然偶爾也會寫其他的語言,不過python的強大,很難讓我在去適應(應該是懶得關係)其他的語言。 
期望自己在今年還是能夠些比較深入的文章,不是那邊LDS。
看看可不可以介紹些好用的python module與開發上的想法。