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 的本質與好處吧!

歡迎大家互相交流! :)








沒有留言: