python命令列引數處理:argparse、optparse和getopt
一 命令列引數:
(1)在python中:
*sys.argv:命令列引數的列表。
*len(sys.argv):命令列引數的個數(argc)。
*python中提供了三個模組來輔助處理命令列引數:getopt,optparse和argparse。
(2)術語:
*argument:命令列上的字串,在python中引數是sys.argv[1:],argv[0]是執行程式的名字。
*option:選項。
*option argument:選項的值,跟在選項後面。格式:-f foo/-ffoo,--file foo/--file=foo。
*position argument:位置引數,選項被處理後剩下的引數。
*required option。
二 getopt模組:
(1)簡單用法:
*簡單的識別選項以及選項引數,位置引數以列表的形式返回。
三 optparse模組(從2.7開始廢棄,建議使用argparse):
(1)簡單用法:
*識別選項以及選項引數,可指定複雜的操作,位置引數以列表的形式返回。如下:
from optparse import OptionParser parser=OptionParser() parser.add_option(“-f”, "--file", dest="filename", action="store" help="need a file name")。 (options,args)=parser.parse_args()
*使用時-f 選項值或--file選項值。
*action的值預設是“store”,把選項後面的賦給dest代表的值,即filename=選項值。
*optparse自動為程式提供幫助資訊,使用方式-h,--help。add_option函式中的help的值作為檢視程式幫助資訊時可以看到。
*上例程式的幫助資訊是:-l filename,--list=filename need a filename。注意filename就是dest的值,後面的資訊就是help的值。
*parse_args():返回兩個值,options和args。options是一個字典,其值為{"filename":選項值},可通過options.filename使用選項值;args是一個位置引數的列表,注意區分選項、選項引數以及位置引數。
(2)action的取值:
*store:預設。
*store_true
*store_false
*store_const:store a constant value.
*append:append this option's argument to a list.
*count:increment a counter by one.
*callback:call a specified function.
四 argparse模組: