最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Python中命令行參數(shù)argparse的常用命令

 更新時(shí)間:2023年01月29日 14:12:23   作者:啊哈彭  
這篇文章主要為大家詳細(xì)介紹了Python中命令行參數(shù)argparse的一些常用命令,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,需要的可以了解一下

1、參數(shù)個(gè)數(shù)控制

parser.add_argument('-i', '--integers', nargs='?', const=100, type=int, help='input a number')

參數(shù)nargs:

  • nargs='*'     表示參數(shù)可設(shè)置0個(gè)或多個(gè),參數(shù)是一個(gè)列表
  • nargs='+'    表示參數(shù)可設(shè)置1個(gè)或多個(gè),參數(shù)是一個(gè)列表
  • nargs='?' 表示參數(shù)可設(shè)置0個(gè)或1個(gè)

1、參數(shù)名后面必須跟值的情況

1)沒(méi)有配置nargs

2)設(shè)置了nargs='+'

2、使用參數(shù)但不跟值的條件

使用nargs='?', 且添加const設(shè)定一個(gè)參數(shù)值。

3、使用時(shí)不顯式掉用參數(shù)但給參數(shù)賦默認(rèn)值

添加default屬性即可。

例如:

import argparse

parser = argparse.ArgumentParser(description='This is a parse demo') 
parser.add_argument('-i', '--integers', nargs='?', const=10, default=100, type=int, help='input a number')

args = parser.parse_args() 
print(args.integers)

# 顯式調(diào)用
$ python t3.py  -i 1
1
# 使用const屬性
$ python t3.py  -i
10
# 使用參數(shù)的默認(rèn)值
$ python t3.py
100

4、action--命令行參數(shù)與動(dòng)作相關(guān)聯(lián)

action 命名參數(shù)指定了這個(gè)命令行參數(shù)應(yīng)當(dāng)如何處理。

1.store_[true, false]

不需要跟參數(shù)值,用法: parser.add_argument('--foo', action='store_true'), 如果調(diào)用--foo則其值為true。

2.store_const

如果使用該命令選項(xiàng)則其值為const指定的值,用法:parser.add_argument('--foo', action='store_const', const=42)。

3.store_append

append存儲(chǔ)一個(gè)列表,并將每個(gè)參數(shù)值附加到列表中。用法:parser.add_argument('--foo', action='append')。

常用的組合如默認(rèn)為False,當(dāng)指定了此命令則屬性為T(mén)rue。

parser.add_argument('--foo', action='store_true', default=False)

2、參數(shù)互斥

如果希望兩個(gè)或多個(gè)參數(shù)互斥??梢允褂胊rgparse.ArgumentParser.add_mutually_exclusive_group() 功能.

1、參數(shù)組

了解互斥之前先看下參數(shù)組(group),group功能可以把參數(shù)分為不同的組,以更加清晰的方式顯示參數(shù)信息。

import argparse

parser = argparse.ArgumentParser(description='This is a parse demo') 

group1 = parser.add_argument_group('group1', 'group1 description')
group1.add_argument('--foo', help='foo help')
group1.add_argument('--foo2', help='foo1 help')
group2 = parser.add_argument_group('group2', 'group2 description')
group2.add_argument('--bar', help='bar help')
group2.add_argument('--bar2', help='bar2 help')

args = parser.parse_args() 
print(args)

# 測(cè)試
$ python t3.py -h
usage: t3.py [-h] [--foo FOO] [--foo2 FOO2] [--bar BAR] [--bar2 BAR2]

This is a parse demo

optional arguments:
  -h, --help   show this help message and exit

group1:
  group1 description

  --foo FOO    foo help
  --foo2 FOO2  foo1 help

group2:
  group2 description

  --bar BAR    bar help
  --bar2 BAR2  bar2 help

2、互斥組

創(chuàng)建一個(gè)互斥組。 argparse 將會(huì)確?;コ饨M中只有一個(gè)參數(shù)在命令行中可用。

import argparse

parser = argparse.ArgumentParser(description='This is a parse demo')
group = parser.add_mutually_exclusive_group()
group.add_argument('--foo', action='store_true')
group.add_argument('--bar', action='store_false')

args = parser.parse_args()
print(args)

# 測(cè)試互斥組
$ python t3.py --foo
Namespace(foo=True, bar=True)

$ python t3.py --bar
Namespace(foo=False, bar=False)

$ python t3.py --foo --bar
usage: t3.py [-h] [--foo | --bar]
t3.py: error: argument --bar: not allowed with argument --foo

3、子命令

在代碼功能較多時(shí),使用子命令可以把相關(guān)的小功能合并為一類(lèi)命令,然后用二級(jí)參數(shù)進(jìn)一步精細(xì)控制。這樣能讓代碼更加模塊化,提高可讀性同時(shí)也便利了使用者調(diào)用。例如git的commit就是一個(gè)子命令,commit是一個(gè)大類(lèi)命令,而commit本身還有很多二級(jí)參數(shù)。

import argparse

def add(arguments):
    print(f'{arguments.x} + {arguments.y} = {arguments.x + arguments.y}')

def sub(arguments):
    print(f'{arguments.x} - {arguments.y} = {arguments.x - arguments.y}')

# create the top-level parser
parser = argparse.ArgumentParser(description='This is a parse demo') 
subparsers = parser.add_subparsers()

# create the parser for command 'add'
add_parser = subparsers.add_parser('add', help='calc add')
add_parser.add_argument('-x',  type=int, help='x value')
add_parser.add_argument('-y',  type=int, help='y value')
add_parser.set_defaults(func=add)

# create the parser for command 'sub'
sub_parser = subparsers.add_parser('sub', help='calc sub')
sub_parser.add_argument('-x',  type=int, help='x value')
sub_parser.add_argument('-y',  type=int, help='y value')
sub_parser.set_defaults(func=sub)

args = parser.parse_args() 
print(f"print the input: x={args.x}, y={args.y}")

args.func(args) # 跳轉(zhuǎn)到對(duì)應(yīng)的函數(shù)

# 測(cè)試
$ python t2.py add -x 1 -y=2
print the input: x=1, y=2
1 + 2 = 3

$ python t2.py sub -x 1 -y 2
print the input: x=1, y=2
1 - 2 = -1

需要注意的是:parse_args只返回主解析器和子命令對(duì)應(yīng)的子解析器的屬性,沒(méi)有其他子命令的解析器,因此上面例子add和sub不可同時(shí)調(diào)用。也就是說(shuō)subparser不支持多個(gè)子命令同時(shí)使用。

到此這篇關(guān)于詳解Python中命令行參數(shù)argparse的常用命令的文章就介紹到這了,更多相關(guān)Python argparse內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 程序員寫(xiě)Python時(shí)的5個(gè)壞習(xí)慣,你有幾條?

    程序員寫(xiě)Python時(shí)的5個(gè)壞習(xí)慣,你有幾條?

    這篇文章主要介紹了程序員寫(xiě)Python時(shí)的5個(gè)壞習(xí)慣,你有幾條?有的習(xí)慣會(huì)讓 Bug 變得隱蔽難以追蹤,當(dāng)然,也有的并沒(méi)有錯(cuò)誤,只是個(gè)人覺(jué)得不夠優(yōu)雅。本文有示例代碼,感興趣的朋友跟隨小編一起看看吧
    2018-11-11
  • Python結(jié)合Sprak實(shí)現(xiàn)計(jì)算曲線(xiàn)與X軸上方的面積

    Python結(jié)合Sprak實(shí)現(xiàn)計(jì)算曲線(xiàn)與X軸上方的面積

    這篇文章主要介紹了Python結(jié)合Sprak實(shí)現(xiàn)計(jì)算曲線(xiàn)與X軸上方的面積,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-02-02
  • python算法練習(xí)之兔子產(chǎn)子(斐波那切數(shù)列)

    python算法練習(xí)之兔子產(chǎn)子(斐波那切數(shù)列)

    這篇文章主要給大家介紹python算法練習(xí)兔子產(chǎn)子,文章先進(jìn)行問(wèn)題描述及分析然后設(shè)計(jì)算法最后再得出完整程序,需要的朋友可以參考一下 文章得具體內(nèi)容
    2021-10-10
  • 詳解python基礎(chǔ)之while循環(huán)及if判斷

    詳解python基礎(chǔ)之while循環(huán)及if判斷

    這篇文章主要介紹了python基礎(chǔ)之while循環(huán)及if判斷的相關(guān)資料,需要的朋友可以參考下
    2017-08-08
  • Python用Flask封裝API及調(diào)用詳解

    Python用Flask封裝API及調(diào)用詳解

    本文介紹Flask的優(yōu)勢(shì)(輕量、靈活、易擴(kuò)展),對(duì)比GET/POST表單/JSON請(qǐng)求方式,涵蓋錯(cuò)誤處理、開(kāi)發(fā)建議及生產(chǎn)環(huán)境部署注意事項(xiàng)
    2025-08-08
  • 利用selenium爬蟲(chóng)抓取數(shù)據(jù)的基礎(chǔ)教程

    利用selenium爬蟲(chóng)抓取數(shù)據(jù)的基礎(chǔ)教程

    這篇文章主要給大家介紹了關(guān)于如何利用selenium爬蟲(chóng)抓取數(shù)據(jù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用selenium具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Python 的七個(gè)HTTP請(qǐng)求庫(kù)對(duì)比小結(jié)

    Python 的七個(gè)HTTP請(qǐng)求庫(kù)對(duì)比小結(jié)

    本文主要介紹了Python 的七個(gè)HTTP請(qǐng)求庫(kù)對(duì)比小結(jié),文中通過(guò)圖表,示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • Python中使用platform模塊獲取系統(tǒng)信息的用法教程

    Python中使用platform模塊獲取系統(tǒng)信息的用法教程

    這里我們整理了Python中使用platform模塊獲取系統(tǒng)信息的用法教程,包括操作系統(tǒng)與Python環(huán)境以及系統(tǒng)的環(huán)境變量等信息的獲取方法:
    2016-07-07
  • python處理RSTP視頻流過(guò)程解析

    python處理RSTP視頻流過(guò)程解析

    這篇文章主要介紹了python處理RSTP視頻流過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • 解決PyCharm IDE環(huán)境下,執(zhí)行unittest不生成測(cè)試報(bào)告的問(wèn)題

    解決PyCharm IDE環(huán)境下,執(zhí)行unittest不生成測(cè)試報(bào)告的問(wèn)題

    這篇文章主要介紹了解決PyCharm IDE環(huán)境下,執(zhí)行unittest不生成測(cè)試報(bào)告的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09

最新評(píng)論

海阳市| 平罗县| 嘉兴市| 芜湖县| 容城县| 遂平县| 四川省| 达拉特旗| 济源市| 怀仁县| 酒泉市| 北安市| 驻马店市| 奎屯市| 原平市| 台东县| 巴里| 郓城县| 肇源县| 常熟市| 乌拉特前旗| 叙永县| 南木林县| 方山县| 中西区| 莱阳市| 唐海县| 双柏县| 沧州市| 剑阁县| 绥棱县| 永善县| 七台河市| 青海省| 昌图县| 得荣县| 花莲市| 普宁市| 海晏县| 沈阳市| 万载县|