1. 程式人生 > >Python getopt的使用詳解

Python getopt的使用詳解

首先,要說明的是python中的getopt模組是專門用來處理命令列引數的。

對於一般的命令列引數處理,只需要簡單使用sys.argv就可以實現,舉例說明,建立一個argvtest.py檔案內容如下:

#argvtest.py

import sys

print(sys.argv)

用命令列的方式執行該檔案python argvtest.py a b c,發現得到的結果是[’argvtest.py’,’a’,’b’,’c’],它是一個list。但是當命令列引數變得複雜,即有短選項(-a)和長選項(--b),並且選項後接引數的時候,就需要用到getopt模組。

getopt模組中的函式getopt(args, shortopts, longopts = [])。因為第一個引數是python檔案本身,所以引數args一般是sys.argv[1:],shortopts是短選項即只有一個字母,longopts是長選項。需要特別注意的是引數是嚴格區分大小寫的。具體的使用方法如下:

c後面不帶:表示使用短選項-c時後面不接引數,help後面不接=表示使用長選項--help時後面不接引數,反之則需要後接引數。options是一個由tuple組成的list,比如[(’help’,’’),(’-a’,’50’)],args是一個list,用來接收沒有’-’和’--’的引數,比如[’c’,’d’]。當出現未在getopt函式中定義的短選項和長選項時,執行程式會出現exception,如果需要對exception進行處理,可以做如下處理:

try:
    options,args = getopt.getopt(sys.argv[1:],”a:b:c”,[”help”,”ip=”]))
    ……
except getopt.GetoptError:
    #Handle getopt error
    pass
    sys.exit(1)