怎么使用PythonPython創(chuàng)建命令?
Python創(chuàng)建命令使其成為一種學習曲線平和的編程語言,有經驗的程序員甚至可能在一天之內就掌握Python的基礎知識,至多不過一周作用就可以上手,而編程語言的專家則肯定。
并帶有內置的幫助菜單、錯誤處理和選項處理。由于一些奇怪的原因,很多人并不了解 Python® 的標準庫具有制作功能極其強大的 *NIX 命令行工具所需的全部工具。 可以這樣說,Python 是制作 *NIX 命令行工具的最佳語言,因為它依照“batteries-included”的哲學方式工作,并且強調提供可讀性高的代碼。
但僅作為提醒,當您發(fā)現使用 Python創(chuàng)建命令行工具是一件多么簡單的事情時,這些想法很危險,您的生活可能被攪得一團糟。據我所知,至今還沒有發(fā)表過詳細說明使用 Python創(chuàng)建命令行工具的文章。
因此我希望您喜歡這篇文章。Python 標準庫中的 optparse 模塊可完成創(chuàng)建命令行工具的大部分瑣碎工作。optparse 包含在 Python 2.3 中,因此該模塊將包括在許多 *NIX 操作系統(tǒng)中。#t#
如果由于某種原因,您使用的操作系統(tǒng)不包含所需要的模塊,那么值得慶幸的是,Python 的最新版本已經過測試并編譯到幾乎任何 *NIX 操作系統(tǒng)中。Python 支持的系統(tǒng)包括 IBM® AIX®、HP-UX、Solaris、Free BSD、Red Hat Linux®、Ubuntu、OS X、IRIX,甚至包括幾種 Nokia 手機。
編寫優(yōu)秀的命令行工具的第一步是定義要解決的問題。這對您工具的成功至關重要。這對于以盡可能簡單的方法解決問題也同樣重要。這里明確地采用了 KISS(Keep It Simple Stupid,保持簡單)準則。只有在實現并測試了計劃內功能之后才添加選項和增加其他功能。
我們首先從創(chuàng)建 Hello World 命令行工具開始。按照上面的建議,我們使用盡可能簡單的術語來定義問題。問題定義:我希望創(chuàng)建一個命令行工具,默認打印 Hello World,并提供用于打印不通人的姓名的選項。 基于上述說明,可以提供一個包含少量代碼的解決方案。
Hello World 命令行接口 (CLI):
- #!/usr/bin/env python
- import optparse
- def main():
- p = optparse.OptionParser()
- p.add_option('--person', '-p',
- default="world")
- options, arguments = p.parse_args() print 'Hello %s' % options.person
- if __name__ == '__main__':
- main()
但是,我們通過少量PPython創(chuàng)建命令所能做到的遠不止于此。我們可以獲得自動生成的幫助菜單。在這里,我們終于看到了Python中多線程機制的平臺相關性,在Python25\Python目錄下,有一大批thread_***.h這樣的文件,在這些文件中。
包裝了不同操作系統(tǒng)的原生線程,并通過統(tǒng)一的接口暴露給Python,比如這里的PyThread_allocate_lock就是這樣一個接口。我們這里的thread_nt.h中包裝的是Win32平臺的原生thread,在本章中后面的代碼剖析中,還會有大量與平臺相關的代碼,我們都以Win32平臺為例。