argparse用法總結

parse.add_argument('pkg',help='help')
//這是最基礎的參數格式,如果是這樣的格式,說明pkg是一個必須的參數,如果不加入這樣的參數,則會報錯。
import argparse    //導入命令行解析的庫文件
parse = argparse.ArgumentParser(description="test!!")  //爲了別人執行代碼的時候用--help看出來怎麼使用這些代碼

以上兩句是必須的,下面是根據你的代碼需要添加的參數命令行:

parse.add_argument('keyoukewu',help='keyoukewu',nargs='?')  //如果不加上最後一個參數nargs則執行代碼的時候必須加上這個參數,
                                                            //如果有nargs說明這個參數可帶可不帶
parse.add_argument('-a','--abc',help='a sourcedir',nargs='?')
print(args.abc)
print(args.a) //是錯誤的
//運行時使用python demo.py -a abc
//或者使用python demo.py --abc abc(使用的是兩個短橫)
//參數的前面可以添加‘-’,也可以添加‘--’。說明添加的參數可以用簡寫也可以用全稱來標明。但是解析的時候必須用全稱。

有些參數可以不加上的時候默認的值是bool變量。

parse.add_argument('-a','--abc',help='a sourcedir',action='store_true')
//這裏的參數action的作用標明如果不寫參數的話默認的print(args.a)的值是false,但是如果加上參數的話默認的print(args.a)的值
//爲true,其中運行的參數的值不需要加上。
//如果很多的參數都加上了這些參數

上面的情況是默認爲bool類型變量的0,當然也可以設置爲自己想要的默認值。

parse.add_argument('-a','--abc',help='a sourcedir',action='store_true'default=3)
//這時如果加上default的關鍵字,如果加上參數的話爲則參數的值爲1,但如果不加則採用默認的3,不再是0
//但是這時由於採用了action='store_true'的關鍵字,所以不再加上得關鍵字不能再跟着int的數字
//例如:python demo.py -a (is not ture.)
parse.add_argument('-a','--abc',help='a sourcedir',default=3)
//must add!!!!!!!1

f
添加互斥的參數組,因爲有些參數的使用是不能同時出現的:

group = parse.add_mutually_exclusive_group()   //必須先要定義一個互斥的參數組
group.add_argument('-a','--abc',help='a sourceaaa',action='store_true') //在參數組內添加互斥的參數,必須加上store_true的參數
group.add_argument('-b','--bc',help='a sourceabb',action='store_true')

如果定義了以上參數後,運行以上的代碼時,-a -b的參數只能加上一個,加上的爲true,不可以同時加上。無論在互斥組內有多少的參數,都只能出現一個。

說明,在其中如果出現形式如下:

parse.add_argument('-a','--abc',help='a sourcedir',nargs='?')
//這時參數的全名爲abc,但是如果出現dest關鍵字,則全程爲dest關鍵字定義的字段
parse.add_argument('-a','--abc',dest='mn',help='a sourcedir',nargs='?')
//這時無論全名是mn,不再是abc

python 中默認的sys.argv[]會自動保存運行python代碼時的參數,如果參數爲一個就保存在sys.argv[1]中,多的會依次向下存:

import sys

print(sys.argv[1])
print(sys.argv[2])

如果執行以上的代碼:
python 1 2
會自動打印1,2
但是必須是兩個參數。不然會提示參數過多而導致數組下標越界.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章