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

python的ArgumentParser使用及說明

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

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)建二級(jí)命令
    """
    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)建一級(jí)命令
    """
    parser = ArgumentParser(prog='study')
    subparsers = parser.add_subparsers()
    subparsers.dest = 'project'
    subparsers.required = True
    _create_parser(subparsers.add_parser)
    return parser

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

這里是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對(duì)象屬性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:顯示的程序名,不填則默認(rèn)是文件名

1.4. 屬性

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

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

參數(shù)

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

舉個(gè)栗子

# 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)為對(duì)象,并將屬性分配給命名空間

參數(shù)

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

舉個(gè)栗子

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.啟動(dòng)命令分配

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

2. Namespace 命名空間

2.1. 作用

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

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é)

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

相關(guān)文章

  • Python模擬登錄和登錄跳轉(zhuǎn)的參考示例

    Python模擬登錄和登錄跳轉(zhuǎn)的參考示例

    這篇文章主要介紹了Python模擬登錄和登錄跳轉(zhuǎn)的參考示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-10-10
  • pycharm運(yùn)行OpenCV項(xiàng)目踩坑記錄

    pycharm運(yùn)行OpenCV項(xiàng)目踩坑記錄

    本文主要介紹了在PyCharm中運(yùn)行OpenCV項(xiàng)目時(shí)遇到的問題及其解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • Python中文件的寫入讀取以及附加文字方法

    Python中文件的寫入讀取以及附加文字方法

    今天小編就為大家分享一篇Python中文件的寫入讀取以及附加文字方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Python?matplotlib實(shí)戰(zhàn)之箱型圖繪制

    Python?matplotlib實(shí)戰(zhàn)之箱型圖繪制

    箱型圖(Box?Plot),也稱為盒須圖或盒式圖,是一種用作顯示一組數(shù)據(jù)分布情況的統(tǒng)計(jì)圖,因型狀如箱子而得名,本文主要為大家介紹了如何使用Matplotlib繪制箱型圖,需要的小伙伴可以參考下
    2023-08-08
  • Python集中化管理平臺(tái)Ansible介紹與YAML簡(jiǎn)介

    Python集中化管理平臺(tái)Ansible介紹與YAML簡(jiǎn)介

    這篇文章主要介紹了Python集中化管理平臺(tái)Ansible介紹與YAML,簡(jiǎn)單說明了集中化管理平臺(tái)Ansible的功能與YAML語言的基本語法與基本使用技巧,需要的朋友可以參考下
    2019-06-06
  • Python+turtle繪制七夕表白玫瑰花

    Python+turtle繪制七夕表白玫瑰花

    七夕節(jié),又稱“七巧節(jié)”“女兒節(jié)”“乞巧節(jié)”等,是中國(guó)民間的傳統(tǒng)節(jié)日。一年一度的七夕又快到了,用Python畫一朵玫瑰花送給你的那個(gè)TA吧
    2022-08-08
  • Tensorflow加載預(yù)訓(xùn)練模型和保存模型的實(shí)例

    Tensorflow加載預(yù)訓(xùn)練模型和保存模型的實(shí)例

    今天小編就為大家分享一篇Tensorflow加載預(yù)訓(xùn)練模型和保存模型的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python程序運(yùn)行原理圖文解析

    Python程序運(yùn)行原理圖文解析

    這篇文章主要介紹了Python程序運(yùn)行原理圖文解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-02-02
  • Python線性網(wǎng)絡(luò)實(shí)現(xiàn)分類糖尿病病例

    Python線性網(wǎng)絡(luò)實(shí)現(xiàn)分類糖尿病病例

    什么是線性規(guī)劃?想象一下,您有一個(gè)線性方程組和不等式系統(tǒng)。這樣的系統(tǒng)通常有許多可能的解決方案。線性規(guī)劃是一組數(shù)學(xué)和計(jì)算工具,可讓您找到該系統(tǒng)的特定解,該解對(duì)應(yīng)于某些其他線性函數(shù)的最大值或最小值
    2022-10-10
  • Python采集數(shù)據(jù)保存CSV文件出現(xiàn)內(nèi)容亂碼的解決方法

    Python采集數(shù)據(jù)保存CSV文件出現(xiàn)內(nèi)容亂碼的解決方法

    這篇文章主要為大家詳細(xì)介紹了如何解決Python中保存CSV文件內(nèi)容亂碼的問題,并提供詳細(xì)的示例代碼以更好地理解和解決這個(gè)問題,希望對(duì)大家有所幫助
    2024-03-03

最新評(píng)論