一、介紹
argparse是python用於解析命令行參數和選項的標准模塊,用於代替已經過時的optparse模塊。argparse模塊的作用是用於解析命令行參數。
我們很多時候,需要用到解析命令行參數的程序,目的是在終端窗口(ubuntu是終端窗口,windows是命令行窗口)輸入訓練的參數和選項。
二、使用步驟
我們常常可以把argparse的使用簡化成下面四個步驟
1:import argparse
2:parser = argparse.ArgumentParser()
3:parser.add_argument()
4:parser.parse_args()
上面四個步驟解釋如下:首先導入該模塊;然后創建一個解析對象;然后向該對象中添加你要關注的命令行參數和選項,每一個add_argument方法對應一個你要關注的參數或選項;最后調用parse_args()方法進行解析;解析成功之后即可使用。
三、例子講解
下面我們通過一個例子來進行講解說明
我們可以看到上面的第二個步驟,parser = argparse.ArgumentParser()
它的作用就是:當調用parser.print_help()或者運行程序時由於參數不正確(此時python解釋器其實也是調用了pring_help()方法)時,會打印這些描述信息,一般只需要傳遞description參數。
下面會有例子輸出,首先給出代碼:
#-*- coding: UTF-8 -*- import argparse #步驟一 def parse_args(): """ :return:進行參數的解析 """ parser = argparse.ArgumentParser(description="you should add those parameter") # 這些參數都有默認值,當調用parser.print_help()或者運行程序時由於參數不正確(此時python解釋器其實也是調用了pring_help()方法)時, # 會打印這些描述信息,一般只需要傳遞description參數,如上。 parser.add_argument('--addresses',default="sipingroad", help = "The path of address") parser.add_argument('--gpu', default=0)# 步驟二,后面的help是我的描述 args = parser.parse_args() # 步驟三 return args if __name__ == '__main__': args = parse_args() print(args.addresses) #直接這么獲取即可。
上面四個步驟已經分別對應上了,當我們在命令行敲入:
python arg.py -h
輸出提示為:

如何獲得命令參數值。
我們可以直接通過args.addresses獲得它的參數值。 當我們敲入python arg.py --addresses this-is-parameter-of-addresses 命令時
會輸出this-is-parameter-of-addresses
到這里就總結了argparse模塊常見的一些常見的用法。
參考:
http://blog.xiayf.cn/2013/03/30/argparse/
內容來源 於博客:https://blog.csdn.net/the_time_runner/article/details/97941409
argparse模塊官方文檔:
argparse是一個Python模塊:命令行選項、參數和子命令解析器
argparse模塊可以讓人輕松編寫用戶友好的命令行接口。程序定義它需要的參數。然后argparser將弄清
如何從sys.argv解析出那些參數。argparse模塊還會自動生成幫助和使用手冊,並在用戶給程序傳入無效參數
時報出錯誤信息。
使用流程
1. 創建解析器
parser = argparse.ArgumentParser(description='Process some intergers.')
使用argparser的第一步是創建一個ArgumentParser對象,ArgumentParser對象包含將命令行解析成Python數據類型所需的全部信息。
2. 添加參數
(1). parser.add_argument('integers', metavar='N', type=int, nargs='+', help = 'an integer for the accumulator')
給一個ArgumentParser添加程序闡述信息是通過調用add_arguement()方法完成的。
3. 解析參數
(1). >>>parser.parse_args(['--sum', '7', '-1', '42' ])
2 Namespace(accumulate=<built-in function sum>, integers=[7, -1, 42])
ArgumentParser通過parse_args()方法解析參數
ArgumentParser對象
prog - 程序的名稱(默認: sys.argv[0],prog猜測是programma的縮寫)
usage - 描述程序用途的字符串(默認值:從添加到解析器的參數生成)
description - 在參數幫助文檔之后顯示的文本 (默認值:無)
add_argument()方法
name or flags - 一個命名或者一個選項字符串的列表
action - 表示該選項要執行的操作
default - 當參數未在命令行中出現時使用的值
dest - 用來指定參數的位置
type - 為參數類型,例如int
choices - 用來選擇輸入參數的范圍。例如choice = [1, 5, 10], 表示輸入參數只能為1,5 或10
help - 用來描述這個選項的作用