欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python程序運行添加命令行參數argparse模塊具體用法詳解

 更新時間:2024年01月06日 10:38:43   作者:Elaine猿  
這篇文章主要給大家介紹了關于python程序運行添加命令行參數argparse模塊具體用法的相關資料,argparse是Python內置的一個用于命令項選項與參數解析的模塊,通過在程序中定義好我們需要的參數,需要的朋友可以參考下

一. argparse介紹

很多時候,我們的程序要帶參數來運行不同的功能,需要解析命令行參數。argparse模塊能夠很好的提供支持。

argparse是 python 自帶的命令行參數解析包,用于解析命令行參數的標準模塊。可以讓人輕松編寫用戶友好的命令行接口,還會自動生成幫助和使用手冊,并在用戶給程序傳入無效參數時報出錯誤信息。

二. 使用步驟及參數介紹

argparse模塊的使用可以簡化成下面四個步驟:

1)import argparse 導入模塊

2)parser = argparse.ArgumentParser() 創(chuàng)建一個解析對象(命令行解析器)
  ArgumentParser對象的相關屬性,全部參數:

3)parser.add_argument() 向該對象中添加要關注的命令行參數和選項,每一個add_argument方法對應一個要關注的參數或選項;

add_argument相關屬性,全部參數:

屬性解釋
name or flags一個命名或者一個選項字符串的列表,例如 foo 或 -f, --foo。
action當參數在命令行中出現時使用的動作基本類型。
nargs命令行參數應當消耗的數目。
const被一些 action 和 nargs 選擇所需求的常數。
default當參數未在命令行中出現并且也不存在于命名空間對象時所產生的值。
type命令行參數應當被轉換成的類型。
choices可用的參數的容器。
required此命令行選項是否可省略 (僅選項可用)。
help一個此選項作用的簡單描述。
metavar在使用方法消息中使用的參數值示例。
dest被添加到 parse_args() 所返回對象上的屬性名。

4)parser.parse_args() 調用parse_args()方法進行解析

parse_args相關屬性,全部參數:

屬性解釋默認值
args要解析的字符串列表從 sys.argv 獲取。
namespace用于獲取屬性的對象一個新的空 Namespace 對象。

三. 具體使用

add_argument() 方法必須知道它是否是一個選項,例如 -f 或 --foo,或是一個位置參數。

第一個傳遞給 add_argument() 的參數必須是一系列旗標或者是一個簡單的參數名。

當 parse_args() 被調用,選項會以 - 前綴識別,剩下的參數則會被假定為位置參數。

-(橫杠)和 (雙橫杠)都是用來表示命令行參數的前綴符號:

-用來表示短參數(Short options),通常只有一個字符。

–用來表示長參數(Long options),通常是一個單詞或短語。

在argparse中,-和–可以用來定義命令行參數的簡寫和全名,例如:parser.add_argument(‘-n’, ‘–name’, help=‘輸入姓名’)

import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('-n', '--name', help='輸入姓名')
    args = parser.parse_args()
    # 獲得傳入的參數
    print(args)

帶參執(zhí)行結果:

3.1 設置必需參數

add_argument方法的required參數可以設置該參數是否是必需。

如果該參數設置為必需參數,程序執(zhí)行時未指定該參數會報錯!

import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--name', help='輸入姓名', required=True)
    parser.parse_args()
    # 獲得傳入的參數
    print(args)
    # 獲得指定的參數
    print(args.name)

運行 python test.py 和 python test.py --name Elaine

結果:

3.2 傳一個參數

add_argument添加一個參數選項

import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--name', help='輸入姓名')
    args = parser.parse_args()
    # 獲得傳入的參數
    print(args)
    # 獲得指定的參數
    print(args.name)

運行程序 -h 看一下效果

D:\>python test.py -h
usage: test.py [-h] [--name NAME]

optional arguments:
  -h, --help   show this help message and exit
  --name NAME  輸入姓名

帶一個參數和帶三個參數運行的結果:

可以看到,這種情形下傳入三個參數會報錯!

3.3 傳多個參數

1)add_argument加上nargs參數,nargs是用來說明傳入的參數個數,例如:

import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--name', nargs=3, help='輸入姓名')
    args = parser.parse_args()
    # 獲得傳入的參數
    print(args)
    # 獲得指定的參數
    print(args.name)

運行 python test.py --name Elaine 和 python test.py --name Elaine Elaine1 Elaine2

結果:

2)nargs為’+’ 表示傳入至少一個參數,可以不用指定具體多少個參數,例如:

import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--name', nargs='+', help='輸入姓名')
    args = parser.parse_args()
    # 獲得傳入的參數
    print(args)
    # 獲得指定的參數
    print(args.name)

運行 python test.py --name Elaine 和 python test.py --name Elaine Elaine1 Elaine2

結果:

3.4 位置參數和可選參數

add_argument() 方法必須知道它是否是一個選項,例如 -f 或 --foo,或是一個位置參數。

第一個傳遞給 add_argument() 的參數必須是一系列旗標或者是一個簡單的參數名。

當 parse_args() 被調用,選項會以 - 前綴識別,剩下的參數則會被假定為位置參數。

1)位置參數

add_argument第一個參數可以這么創(chuàng)建:parser.add_argument(‘name’, help=‘輸入姓名’)

其中第一個參數可以是任何參數名,但前面不要加 - (橫杠)或 (雙橫杠)

這些參數是不帶前綴的參數,它們通常用于需要按特定順序提供的參數,且通常是必需的。

import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='命令行中傳入一個參數')
    parser.add_argument('name', help='輸入姓名')
    parser.add_argument('country', help='國家')
    args = parser.parse_args()
    # 獲得傳入的參數
    print(args)

執(zhí)行 python test.py Elaine China 和 python test.py China Elaine

結果:

所以位置參數都是順序的,在命令行中傳入參數時候,傳入的參數的先后順序不同,運行結果往往會不同!

執(zhí)行 python test.py Elaine 時缺少第二個位置參數會報錯,所以位置參數通常是必須的。例如:

2)可選參數

為了在命令行中避免上述位置參數的順序混亂,可以使用可選參數。這個很像關鍵詞傳參,但是需要在關鍵詞前面加-

例如:

import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--name', nargs='+', help='輸入姓名')
    parser.add_argument('--country', nargs='+', help='國家名稱')
    args = parser.parse_args()
    # 獲得傳入的參數
    print(args)

執(zhí)行 python test.py --name Elaine Elaine1 Elaine2 和 python test.py --name Elaine Elaine1 Elaine2 --country China

結果:

可選參數雖然寫法比較繁瑣,但是增加了命令行中的可讀性,不容易因為參數傳入順序導致數據錯亂。

3.5 參數設置默認值

add_argument加上default參數

import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('-n', '--name', help='輸入姓名')
    parser.add_argument('-c', '--country', default='China', help='國家名稱')
    args = parser.parse_args()
    # 獲得傳入的參數
    print(args)

運行python test.py --name Elaine 和 python test.py

結果:

3.6 其它用法

想要了解更多,可以去看看官方文檔

參考官方文檔:https://docs.python.org/zh-cn/3.9/library/argparse.html#parents

總結

到此這篇關于python程序運行添加命令行參數argparse模塊具體用法的文章就介紹到這了,更多相關python命令行參數argparse模塊內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 通過?for?循環(huán)比較?Python?與?Ruby?的編程區(qū)別

    通過?for?循環(huán)比較?Python?與?Ruby?的編程區(qū)別

    這篇文章主要介紹了通過?for?循環(huán)比較?Python?與?Ruby?的編程區(qū)別,Ruby?與?Python?之間的差異在很大程度上可通過for循環(huán)看出本質,下文詳細介紹需要的小伙伴可以參考一下
    2022-05-05
  • python制作填詞游戲步驟詳解

    python制作填詞游戲步驟詳解

    在本文里我們給大家整理了關于python制作填詞游戲的具體步驟以及實例代碼,需要的朋友們跟著學習下。
    2019-05-05
  • 使用Django框架中ORM系統(tǒng)實現對數據庫數據增刪改查

    使用Django框架中ORM系統(tǒng)實現對數據庫數據增刪改查

    這篇文章主要介紹了使用Django的ORM實現對數據庫數據增刪改查方法,文中附含詳細示例代碼以及過程詳解,有需要的朋友可以借鑒參考下
    2021-09-09
  • Django創(chuàng)建一個后臺的基本步驟記錄

    Django創(chuàng)建一個后臺的基本步驟記錄

    這篇文章主要給大家介紹了關于Django創(chuàng)建一個后臺的基本步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-10-10
  • 詳解Python如何使用PyBuilder從零開始構建項目

    詳解Python如何使用PyBuilder從零開始構建項目

    PyBuilder是一個用于構建Python項目的工具,它提供了一種簡單而強大的方式來管理項目的依賴、運行測試、生成文檔等任務,下面就跟隨小編一起來學習一下如何使用PyBuilder構建項目吧
    2024-03-03
  • Python3安裝Pillow與PIL的方法

    Python3安裝Pillow與PIL的方法

    今天小編就為大家分享一篇關于Python3安裝Pillow與PIL的方法,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-04-04
  • Python?Pandas學習之series的二元運算詳解

    Python?Pandas學習之series的二元運算詳解

    二元運算是指由兩個元素形成第三個元素的一種規(guī)則,例如數的加法及乘法;更一般地,由兩個集合形成第三個集合的產生方法或構成規(guī)則稱為二次運算。本文將詳細講講Pandas中series的二元運算,感興趣的可以了解一下
    2022-09-09
  • python 創(chuàng)建一個空dataframe 然后添加行數據的實例

    python 創(chuàng)建一個空dataframe 然后添加行數據的實例

    今天小編就為大家分享一篇python 創(chuàng)建一個空dataframe 然后添加行數據的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Python打包方法Pyinstaller的使用

    Python打包方法Pyinstaller的使用

    在我們完成一個Python項目或一個程序時,希望將Python的py文件打包成在Windows系統(tǒng)下直接可以運行的exe程序。這篇文章主要介紹了Python打包方法Pyinstaller的使用,感興趣的小伙伴們可以參考一下
    2018-10-10
  • python正則表達式完成車牌號檢驗的代碼實例

    python正則表達式完成車牌號檢驗的代碼實例

    這篇文章主要給大家介紹了關于python正則表達式完成車牌號檢驗的相關資料,在Python中正則表達式是一種用于匹配和操作字符串的強大工具,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-02-02

最新評論