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

python?argparse模塊傳參用法實例

 更新時間:2022年06月02日 09:12:14   作者:HiDaDeng  
這篇文章主要為大家介紹了python?argparse模塊傳參用法實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

前言

argsparse是python的命令行解析的標(biāo)準(zhǔn)模塊,內(nèi)置于python,不需要安裝。這個庫可以讓我們直接在命令行中就可以向程序中傳入?yún)?shù)并讓程序運行。

港真的,今天是我第一次學(xué)習(xí)argsparse。因為用不到,自然也就沒有學(xué)習(xí)的動力。但是現(xiàn)在電腦有點卡,每次打開pycharm太卡了,逼得我不得不開始使用命令行來測試代碼。

傳入一個參數(shù)

我們先在桌面新建“arg學(xué)習(xí)”的文件夾,在該文件夾中新建demo.py文件,來看一個最簡單的argsparse庫的使用的例子。

import argparse
parser = argparse.ArgumentParser(description='命令行中傳入一個數(shù)字')
#type是要傳入的參數(shù)的數(shù)據(jù)類型  help是該參數(shù)的提示信息
parser.add_argument('integers', type=str, help='傳入的數(shù)字')
args = parser.parse_args()
#獲得傳入的參數(shù)
print(args)

在這個代碼中,我們在命令行傳入一個數(shù)字。使用方法是打開命令行,先將工作目錄cd到arg學(xué)習(xí)

cd desktop/arg學(xué)習(xí)

然后再命令行中輸入python demo.py -h或者python demo.py --help, 這里我輸入的是

python demo.py -h

在命令行中看到demo.py的運行結(jié)果如下

usage: demo.py [-h] integers
命令行中傳入數(shù)字
positional arguments:
  integers    傳入的數(shù)字
optional arguments:
  -h, --help  show this help message and exit

現(xiàn)在我們在命令行中給demo.py 傳入一個參數(shù)5,

python demo.py 5

運行,得到的運行結(jié)果是

Namespace(integers='5')

操作args字典

其實得到的這個結(jié)果Namespace(integers='5')是一種類似于python字典的數(shù)據(jù)類型。

我們可以使用 arg.參數(shù)名來提取這個參數(shù)

import argparse
parser = argparse.ArgumentParser(description='命令行中傳入一個數(shù)字')
#type是要傳入的參數(shù)的數(shù)據(jù)類型  help是該參數(shù)的提示信息
parser.add_argument('integers', type=str, help='傳入的數(shù)字')
args = parser.parse_args()
#獲得integers參數(shù)
print(args.integers)

在命令行中運行 python demo.py 5 , 運行結(jié)果為

5

傳入多個參數(shù)

現(xiàn)在在命令行中給demo.py 傳入多個參數(shù),例如傳入1,2,3,4四個數(shù)字

python demo.py 1 2 3 4

運行報錯

usage: demo.py [-h] integers 
demo.py: error: unrecognized arguments: 2 3 4

不能識別2 3 4,看源代碼我們知道integers這個參數(shù)是位置參數(shù),說明第一個數(shù)1是能識別。這里我們需要重新更改demo.py代碼

import argparse
parser = argparse.ArgumentParser(description='命令行中傳入一個數(shù)字')
parser.add_argument('integers', type=str, nargs='+',help='傳入的數(shù)字')
args = parser.parse_args()
print(args.integers)

nargs是用來說明傳入的參數(shù)個數(shù),'+' 表示傳入至少一個參數(shù)。這時候再重新在命令行中運行python demo.py 1 2 3 4得到

['1', '2', '3', '4']

改變數(shù)據(jù)類型

add_argument中有type參數(shù)可以設(shè)置傳入?yún)?shù)的數(shù)據(jù)類型。我們看到代碼中有type這個關(guān)鍵詞,該關(guān)鍵詞可以傳入list, str, tuple, set, dict等。例如我們把上面的type=str,改成type=int,這時候我們就可以進(jìn)行四則運算。

import argparse
parser = argparse.ArgumentParser(description='命令行中傳入一個數(shù)字')
parser.add_argument('integers', type=int, nargs='+',help='傳入的數(shù)字')
args = parser.parse_args()
#對傳入的數(shù)據(jù)進(jìn)行加總
print(sum(args.integers)

在命令行中輸入 python demo.py 1 2 3 4, 運行結(jié)果為

10

位置參數(shù)

在命令行中傳入?yún)?shù)時候,傳入的參數(shù)的先后順序不同,運行結(jié)果往往會不同,這是因為采用了位置參數(shù),例如

import argparse
parser = argparse.ArgumentParser(description='姓名')
parser.add_argument('param1', type=str,help='姓')
parser.add_argument('param2', type=str,help='名')
args = parser.parse_args()
#打印姓名
print(args.param1+args.param2)

在命令行中分別輸入python demo.py 張 三和python demo.py 三 張,得到的 運行結(jié)果分別為

張三

三張

如果我們將代碼

parser.add_argument('param1', type=str,help='姓')

parser.add_argument('param2', type=str,help='名')互

換位置,即第4行和第五行代碼,再重新運行

python demo.py 張 三 和 python demo.py 三 張,得到的 運行結(jié)果分別為

三張

張三

可選參數(shù)

為了在命令行中避免上述位置參數(shù)的bug(容易忘了順序),可以使用可選參數(shù),這個有點像關(guān)鍵詞傳參,但是需要在關(guān)鍵詞前面加--,例如

import argparse
parser = argparse.ArgumentParser(description='姓名')
parser.add_argument('--family', type=str,help='姓')
parser.add_argument('--name', type=str,help='名')
args = parser.parse_args()
#打印姓名
print(args.family+args.name)

在命令行中輸入

python demo.py --family=張 --name=三

運行結(jié)果

張三

可選參數(shù)雖然寫法比較繁瑣,但是增加了命令行中的可讀性,不容易因為參數(shù)傳入順序?qū)е聰?shù)據(jù)錯亂。

默認(rèn)值

add_argument中有一個default參數(shù)。有的時候需要對某個參數(shù)設(shè)置默認(rèn)值,即如果命令行中沒有傳入該參數(shù)的值,程序使用默認(rèn)值。如果命令行傳入該參數(shù),則程序使用傳入的值。具體請看下面的例子

import argparse
parser = argparse.ArgumentParser(description='姓名')
parser.add_argument('--family', type=str, default='張',help='姓')
parser.add_argument('--name', type=str, default='三', help='名')
args = parser.parse_args()
#打印姓名
print(args.family+args.name)

在命令行中分別輸入 python demo.py 、 python demo.py --family=李

運行結(jié)果分別為

張三

李三

必需參數(shù)

add_argument有一個required參數(shù)可以設(shè)置該參數(shù)是否必需。

import argparse
parser = argparse.ArgumentParser(description='姓名')
parser.add_argument('--family', type=str, help='姓')
parser.add_argument('--name', type=str, required=True, default='', help='名')
args = parser.parse_args()
#打印姓名
print(args.family+args.name)

在命令行中輸入 python demo.py --family=張,運行結(jié)果

usage: demo.py [-h] [--family FAMILY] --name NAME
demo.py: error: the following arguments are required: --name

因為可選參數(shù)name的required=True,所以必須要傳入。如果我們將其更改為False,程序運行結(jié)果

以上就是python argparse模塊傳參用法實例詳解的詳細(xì)內(nèi)容,更多關(guān)于python argparse模塊傳參的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python編寫adb截圖工具的實現(xiàn)源碼

    python編寫adb截圖工具的實現(xiàn)源碼

    adb截圖工具可用于Android手機及Android終端,Android端或者Android終端的遠(yuǎn)程截圖至本地電腦中,今天通過本文給大家介紹python編寫adb截圖工具的實現(xiàn)源碼,感興趣的朋友一起看看吧
    2021-08-08
  • 說說如何遍歷Python列表的方法示例

    說說如何遍歷Python列表的方法示例

    這篇文章主要介紹了如何遍歷Python列表的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02
  • Python pip install如何修改默認(rèn)下載路徑

    Python pip install如何修改默認(rèn)下載路徑

    這篇文章主要介紹了Python pip install如何修改默認(rèn)下載路徑,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • pytz格式化北京時間多出6分鐘問題的解決方法

    pytz格式化北京時間多出6分鐘問題的解決方法

    這篇文章主要給大家介紹了關(guān)于pytz格式化北京時間多出6分鐘問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Python3基本輸入與輸出操作實例分析

    Python3基本輸入與輸出操作實例分析

    這篇文章主要介紹了Python3基本輸入與輸出操作,結(jié)合實例形式分析了Python3輸入輸出基本語法、編碼轉(zhuǎn)換、注釋及中文編碼相關(guān)使用技巧,需要的朋友可以參考下
    2020-02-02
  • 使用spyder3調(diào)試python程序的實現(xiàn)步驟

    使用spyder3調(diào)試python程序的實現(xiàn)步驟

    本文主要介紹了使用spyder3調(diào)試python程序的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 基于Python實現(xiàn)新年倒計時

    基于Python實現(xiàn)新年倒計時

    眼看馬上春節(jié)就要來臨了,所以滿懷期待的寫了一個Python新年倒計時的小工具!文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-01-01
  • Python入門教程(二十四)Python的迭代器

    Python入門教程(二十四)Python的迭代器

    這篇文章主要介紹了Python入門教程(二十四)Python的迭代器,Python是一門非常強大好用的語言,也有著易上手的特性,本文為入門教程,需要的朋友可以參考下
    2023-04-04
  • Python實現(xiàn)給文件添加內(nèi)容及得到文件信息的方法

    Python實現(xiàn)給文件添加內(nèi)容及得到文件信息的方法

    這篇文章主要介紹了Python實現(xiàn)給文件添加內(nèi)容及得到文件信息的方法,可實現(xiàn)從文件開頭添加內(nèi)容的功能,需要的朋友可以參考下
    2015-05-05
  • Python的條件語句與運算符優(yōu)先級詳解

    Python的條件語句與運算符優(yōu)先級詳解

    這篇文章主要介紹了Python的條件語句與運算符優(yōu)先級,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10

最新評論