python 之 分割参数getopt
FROM:http://andylin02.iteye.com/blog/845355
python 之 分割參數(shù)getopt
?
os下有個方法walk,非常的好用,用來生成一個generator。每次可以得到一個三元tupple,其中第一個為起始路徑,第二個為起始路徑下的文件夾,第三個是起始路徑下的文件。
?1. 導入getopt, sys 模塊
2. 分析命令行參數(shù)
3. 處理結(jié)果
第一步很簡單,只需要:
import getopt, sys
第二步處理方法如下(以Python 手冊上的例子為例):
1. 處理所使用的函數(shù)叫g(shù)etopt() ,因為是直接使用import 導入的getopt 模塊,所以要加上限定getopt 才可以。
2. 使用sys.argv[1:] 過濾掉第一個參數(shù)(它是執(zhí)行腳本的名字,不應(yīng)算作參數(shù)的一部分)。
3. 使用短格式分析串"ho:" 。當一個選項只是表示開關(guān)狀態(tài)時,即后面不帶附加參數(shù)時,在分析串中寫入選項字符。當選項后面是帶一個附加參數(shù)時,在分析串中寫入選項字符同時后面加一個":" 號 。所以"ho:" 就表示"h" 是一個開關(guān)選項;"o:" 則表示后面應(yīng)該帶一個參數(shù)。
4. 使用長格式分析串列表:["help", "output="] 。長格式串也可以有開關(guān)狀態(tài),即后面不跟"=" 號。如果跟一個等號則表示后面還應(yīng)有一個參數(shù) 。這個長格式表示"help" 是一個開關(guān)選項;"output=" 則表示后面應(yīng)該帶一個參數(shù)。
5. 調(diào)用getopt 函數(shù)。函數(shù)返回兩個列表:opts 和args 。opts 為分析出的格式信息。args 為不屬于格式信息的剩余的命令行參數(shù)。opts 是一個兩元組的列表。每個元素為:( 選項串, 附加參數(shù)) 。如果沒有附加參數(shù)則為空串'' 。
6. 整個過程使用異常來包含,這樣當分析出錯時,就可以打印出使用信息來通知用戶如何使用這個程序。
如上面解釋的一個命令行例子為:
'-h -o file --help --output=out file1 file2'
在分析完成后,opts 應(yīng)該是:
[('-h', ''), ('-o', 'file'), ('--help', ''), ('--output', 'out')]
而args 則為:
['file1', 'file2']
第三步主要是對分析出的參數(shù)進行判斷是否存在,然后再進一步處理。主要的處理模式為:
?
使用一個循環(huán),每次從opts 中取出一個兩元組,賦給兩個變量。o 保存選項參數(shù),a 為附加參數(shù)。接著對取出的選項參數(shù)進行處理。(例子也采用手冊的例子)
?
實踐篇:
Python代碼 ?運行結(jié)果:
$ ./test_getopt.py? -a -oaaa -caa --output=out file1 t file2 -d============ opts ==================
[('-a', ''), ('-o', 'aaa'), ('-c', ''), ('-a', ''), ('-a', ''), ('--output', 'out')]
============ args ==================
['file1', 't', 'file2', '-d']
-a? ==>
-o? ==> aaa
-c? ==>
-a? ==>
-a? ==>
--output? ==> out
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀
總結(jié)
以上是生活随笔為你收集整理的python 之 分割参数getopt的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Wsgi研究
- 下一篇: ffmpeg多线程转码