argparse.ArgumentParser()用法解析


 

一、介紹

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模塊常見的一些常見的用法。

參考:

 

 


 


 

本博客主要本人學習記錄用。

內容來源 於博客: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 - 用來描述這個選項的作用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM