001.argparse

學習WaveNet代碼時,遇到大量的argparse的使用,那麼這個包究竟是什麼用處呢?

argparse 是python自帶的命令行參數解析包,可以用來方便地讀取命令行參數。

import argparse

# 生成一個parse對象,也叫參數解析器
parser = argparse.ArgumentParser(description="描述該解析器是做什麼的,該參數可以爲空")
# 添加信息,以下參數分別對應:變量名,別名,類型,默認值,描述信息
parser.add_argument('--data','-da', type=str, default='data/METR-LA', help='data path')
# 將以上信息以key-value的形式存入arg字典中
args = parser.parse_args()
# 接下來就可以直接調用其中的參數了
print(args.data)

'-''--'同時出現的時候,系統默認後者爲參數名,前者不是,但是在命令行輸入的時候沒有這個區分,接下來就是打印參數信息了。

python parse_test.py -data 'datapath':在命令行調用

python parse_test.py -h:可以查看幫助文檔

add_argument()參數說明:

  • default='XiaoMing':變量的默認值

  • required=True:表示運行時,該參數必須設置具體的值

  • type=int/bool:設置變量類型

  • choices=['alexnet','vgg']:設置該變量的取值,只能從choices給定的值中選擇

  • help='description':變量的描述信息

  • dest='--name':可以用-name,--name爲變量命名

  • nargs='N/?/*/+':表示傳入的參數數量,分別代表:絕對個數N;0/1個參數;0/所有參數;所有並至少一個參數

  • action=store_true:表示一個開關,如果不傳該值,就是default;如果執行命令時直接添加參數名,會將默認值改爲相反的。看例子吧:

    parser.add_argument('--gcn_bool', action='store_true', help='whether to add graph convolution layer')
    

    python test.pygcn_bool=False

    python test.py --gcn_boolgcn_bool=True

參考:

http://vra.github.io/2017/12/02/argparse-usage/

https://docs.python.org/3/library/argparse.html

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