天天看點

argparse——python指令行參數解析包

import argparse

def getArgs():
    parser = argparse.ArgumentParser(description="Demo of argparse")
    parser.add_argument('-n','--name', default=' Li ')
    parser.add_argument('-y','--year', default='20')
    args = parser.parse_args()
    print(args)
    name = args.name
    year = args.year
    print('Hello {}  {}'.format(name,year))

if __name__ == '__main__':
    getArgs()
           

我們先導入了argparse這個包,然後包中的ArgumentParser類生成一個parser對象,其中的description描述這個參數解析器是幹什麼的。

接着我們通過對象的add_argument函數來增加參數。這裡我們增加了兩個參數name和year,其中’-n’,’–name’表示同一個參數,default參數表示我們在運作指令時若沒有提供參數,程式會将此值當做參數值。

最後采用對象的parse_args擷取解析的參數,當’-‘和’–'同時出現的時候,系統預設後者為參數名,前者不是,但是在指令行輸入的時候沒有這個區分。

當執行指令python fun_test.py -n Wang --year '26’結果如下:

Namespace(n = 'Wang', year = '26')
Hello Wang 26