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

python的ArgumentParser使用及說明

 更新時間:2023年08月02日 15:47:14   作者:黃色摩托  
這篇文章主要介紹了python的ArgumentParser使用及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

python的ArgumentParser使用

ArgumentParser是python用來標(biāo)準(zhǔn)化處理sys.argv

#!/usr/bin/env python
# coding: utf8
from argparse import ArgumentParser
OPT_BOOK = {
    'dest': 'book',
    'nargs': '+',
    'help': 'Which book do you want study',
    'required': True
}
OPT_PAGE = {
    'dest': 'page',
    'nargs': '+',
    'help': 'Pages of book to study',
    'required': True
}
OPT_ITEM = {
    'dest': 'item',
    'nargs': '+',
    'help': 'Pages of book to study',
    'required': True
}
OPT_WORD = {
    'dest': 'word',
    'nargs': '+',
    'help': 'Pages of book to study',
    'required': True
}
def _create_parser(parser_factory):
    """ 創(chuàng)建二級命令
    """
    parser = parser_factory('project', help='Study project')
    parser.add_argument('-b', '--book', **OPT_BOOK)
    parser.add_argument('-p', '--page', **OPT_PAGE)
    parser.add_argument('-i', '--item', **OPT_ITEM)
    parser.add_argument('-w', '--word', **OPT_WORD)
    return parser
def create_argument_parser():
    """ 創(chuàng)建一級命令
    """
    parser = ArgumentParser(prog='study')
    subparsers = parser.add_subparsers()
    subparsers.dest = 'project'
    subparsers.required = True
    _create_parser(subparsers.add_parser)
    return parser

簡單的使用按照以上方式來做,用程序名構(gòu)造ArgumentParser(這里是study),隨意給一個父命令add_subparsers(這里是project),然后建立解析工廠parser_factory(這里是project和父命令同名),最后給一堆的參數(shù)輸入型命令add_argument(這里是book,page,item,word,可以用不定參字典,給予幫助信息或必傳等選項)

這里是test方法:

#!/usr/bin/env python
# coding: utf8
import sys
from utils.logger import get_logger
from utils.commander import create_argument_parser
if __name__ == '__main__':
    parser = create_argument_parser()
    arguments = parser.parse_args(sys.argv[1:])
    get_logger().info(arguments.project)
    get_logger().info(arguments.book)
    get_logger().info(arguments.page)
    get_logger().info(arguments.item)
    get_logger().info(arguments.word)

這里是輸出:

[INFO]:2021-02-02 17:16:01,074:{TFSpleeter:project}
[INFO]:2021-02-02 17:16:01,074:{TFSpleeter:['book-a']}
[INFO]:2021-02-02 17:16:01,074:{TFSpleeter:['32']}
[INFO]:2021-02-02 17:16:01,074:{TFSpleeter:['what', 'is', 'item']}
[INFO]:2021-02-02 17:16:01,074:{TFSpleeter:['fuck']}

python對象屬性ArgumentParser,Namespace

1. ArgumengParser

1.1. 作用

分配屬性,可以從python執(zhí)行命令參數(shù)中獲取

1.2. 導(dǎo)包

# python
from argparse import ArgumentParser

1.3. 參數(shù)

ArgumentParser(prog=None)
  • prog:顯示的程序名,不填則默認是文件名

1.4. 屬性

  • 1.4.1. add_argument(*args, **kwargs)

聲明創(chuàng)建屬性的規(guī)則

參數(shù)

  • 第一個參數(shù): 必填,鍵名,格式:"-a"或"–a"
  • dest: 非必填,參數(shù)名重置為
  • default: 非必填,默認值
  • type: 非必填,參數(shù)類型
  • choices: 非必填,可選值,格式:列表,元組
  • required: 非必填,是否必填,默認False
  • namespace: 非必填,分配屬性的對象
  • help: 非必填,說明文字

舉個栗子

# python
b = B()
parser = ArgumentParser()
parser.add_argument('--foo', dest='jjj', type=str, required=True)
parser.add_argument('-env', choices=['test', 'prod'])
  • 1.4.2. parse_args(args=None, namespace=None)

將參數(shù)轉(zhuǎn)為對象,并將屬性分配給命名空間

參數(shù)

  • args:非必填,賦值列表,必須一一對應(yīng)
  • namespace: 非必填,分配屬性的對象

舉個栗子

1.代碼行分配

# python
a = parser.parse_args(['--foo', 'werw', '-env', '234'])
print(a.env)
# 輸出 234
b = B()
parser.parse_args(['--foo', 'werw', '-env', '234'], namespace=b)
print(b.env)
# 輸出 234

2.啟動命令分配

# linux
python3 test.py --foo='www' -evn='234'

2. Namespace 命名空間

2.1. 作用

創(chuàng)建一個包含屬性的對象,返回該對象

2.2. 導(dǎo)包

# python
from argparse import Namespace

2.3. 用法

# python
a = Namespace(env='test', level=2)
print(a.evn)
# 輸出 test
print(a.level)
# 輸出 2

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • pybaobabdt庫基于python的決策樹隨機森林可視化工具使用

    pybaobabdt庫基于python的決策樹隨機森林可視化工具使用

    這篇文章主要為大家介紹了pybaobabdt庫基于python的決策樹隨機森林可視化工具使用探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-02-02
  • Playwright設(shè)置base_url的三種方式

    Playwright設(shè)置base_url的三種方式

    本文主要介紹了三種在使用Playwright或pytest-playwright進行Web自動化測試時設(shè)置base_url的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2026-01-01
  • 如何使用Python實現(xiàn)斐波那契數(shù)列

    如何使用Python實現(xiàn)斐波那契數(shù)列

    這篇文章主要介紹了如何使用Python實現(xiàn)斐波那契數(shù)列,斐波那契數(shù)列(Fibonacci)最早由印度數(shù)學(xué)家Gopala提出,而第一個真正研究斐波那契數(shù)列的是意大利數(shù)學(xué)家 Leonardo Fibonacci,需要的朋友可以參考下
    2019-07-07
  • 你需要學(xué)會的8個Python列表技巧

    你需要學(xué)會的8個Python列表技巧

    這篇文章主要介紹了8個常用的Python列表技巧,文中講解非常詳細,幫助大家更好的學(xué)習(xí)Python,感興趣的朋友可以了解下
    2020-06-06
  • python中for in的用法詳解

    python中for in的用法詳解

    這篇文章主要介紹了python中for in的用法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Matplotlib繪制混淆矩陣的實現(xiàn)

    Matplotlib繪制混淆矩陣的實現(xiàn)

    對于機器學(xué)習(xí)多分類模型來說,其評價指標(biāo)除了精度之外,常用的還有混淆矩陣和分類報告,下面來展示一下如何繪制混淆矩陣,這在論文中經(jīng)常會用到。感興趣的可以了解一下
    2021-05-05
  • Python?dbm庫利用鍵值對存儲數(shù)據(jù)

    Python?dbm庫利用鍵值對存儲數(shù)據(jù)

    Python中的dbm模塊提供了一種輕量級的數(shù)據(jù)庫管理工具,允許開發(fā)者使用鍵值對的形式存儲和檢索數(shù)據(jù),這篇文章將深入介紹dbm庫的使用,探討其基礎(chǔ)功能、高級特性以及實際應(yīng)用場景
    2023-12-12
  • python魔法方法-屬性轉(zhuǎn)換和類的表示詳解

    python魔法方法-屬性轉(zhuǎn)換和類的表示詳解

    下面小編就為大家?guī)硪黄猵ython魔法方法-屬性轉(zhuǎn)換和類的表示詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • Python+Sklearn實現(xiàn)英文文本關(guān)鍵詞提取的完整代碼

    Python+Sklearn實現(xiàn)英文文本關(guān)鍵詞提取的完整代碼

    在自然語言處理(NLP)的文本分析領(lǐng)域,TF-IDF 是實現(xiàn)關(guān)鍵詞提取的經(jīng)典加權(quán)算法,能精準(zhǔn)篩選出文本中兼具單篇高頻和語料庫低頻的核心詞匯,本文將基于Python+Sklearn,針對英文文本實現(xiàn) TF-IDF 的全流程實戰(zhàn),需要的朋友可以參考下
    2026-03-03
  • 零基礎(chǔ)帶你掌握Python Openpyxl單元格樣式修改指南

    零基礎(chǔ)帶你掌握Python Openpyxl單元格樣式修改指南

    在日常辦公中,我們經(jīng)常需要處理大量的 Excel 表格,本篇文章將系統(tǒng)地帶你走進 openpyxl 的樣式修改世界,無論你是編程小白還是有一定基礎(chǔ)的學(xué)習(xí)者,只要跟著本文的步驟,都能輕松讓你的自動化表格漂亮起來
    2026-03-03

最新評論

奉化市| 滨州市| 镇沅| 鄂州市| 平昌县| 美姑县| 天水市| 安化县| 乃东县| 犍为县| 赤壁市| 乐山市| 即墨市| 大兴区| 芒康县| 祁门县| 湖州市| 吉木萨尔县| 罗平县| 海宁市| 安西县| 广河县| 邢台市| 苍梧县| 治县。| 汽车| 南乐县| 尤溪县| 隆德县| 天等县| 宁津县| 龙里县| 台中市| 铁力市| 仙桃市| 青海省| 木兰县| 青岛市| 米易县| 尼玛县| 云林县|