佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > python argparse命令行參數(shù)解析(推薦)

python argparse命令行參數(shù)解析(推薦)

熱門標(biāo)簽:美圖手機(jī) 呼叫中心市場(chǎng)需求 智能手機(jī) 鐵路電話系統(tǒng) 銀行業(yè)務(wù) 服務(wù)器配置 檢查注冊(cè)表項(xiàng) 網(wǎng)站文章發(fā)布

argparse是python用于解析命令行參數(shù)和選項(xiàng)的標(biāo)準(zhǔn)模塊。
很多時(shí)候,需要用到解析命令行參數(shù)的程序,目的是在終端窗口輸入訓(xùn)練的參數(shù)和選項(xiàng)。
argparse 模塊可以讓人輕松編寫用戶友好的命令行接口。
程序定義它需要的參數(shù),然后 argparse 將弄清如何從 sys.argv 解析出那些參數(shù)。 argparse 模塊還會(huì)自動(dòng)生成幫助和使用手冊(cè),并在用戶給程序傳入無(wú)效參數(shù)時(shí)報(bào)出錯(cuò)誤信息。

test.py

# -*- coding: utf-8 -*-
import argparse

# (1) 聲明一個(gè)parser對(duì)象,該對(duì)象包含將命令行解析成 Python 數(shù)據(jù)類型所需的全部信息。
ap = argparse.ArgumentParser(description='Process some integers.')

# (2) 添加參數(shù)
ap.add_argument("first")  # 位置參數(shù),這里表示第一個(gè)出現(xiàn)的參數(shù)賦值給first
ap.add_argument("--digit", type=int, help="輸入數(shù)字")  # 聲明一個(gè)int類型參數(shù)
ap.add_argument("--name", help="名字", default="dog")  # 同上,default 表示默認(rèn)值

# (3) 讀取命令行參數(shù)
args = ap.parse_args()

# (4) 調(diào)用這些參數(shù)
print(args.first)
print(args.digit)
print("name = {}".format(args.name))

調(diào)用

python test.py position_arg --name qwe

ArgumentParser對(duì)象
(1)prog - 程序的名稱(默認(rèn): sys.argv[0])
(2)usage - 描述程序用途的字符串(默認(rèn)值:從添加到解析器的參數(shù)生成)
(3)description - 在參數(shù)幫助文檔之后顯示的文本 (默認(rèn)值:無(wú))
(4)epilog - 在參數(shù)幫助文檔之后顯示的文本(默認(rèn)值:無(wú))
(5)parents - 一個(gè) ap對(duì)象的列表,它們的參數(shù)也應(yīng)包含在內(nèi)
(6)formatter_class - 用于自定義幫助文檔輸出格式的類
(7)prefix_chars - 可選參數(shù)的前綴字符集合(默認(rèn)值:'-')
(8)fromfile_prefix_chars - 當(dāng)需要從文件中讀取其他參數(shù)時(shí),用于標(biāo)識(shí)文件名的前綴字符集合(默認(rèn)值:None)
(8)argument_default - 參數(shù)的全局默認(rèn)值(默認(rèn)值: None)
(9)conflict_handler - 解決沖突選項(xiàng)的策略(通常是不必要的)
(10)add_help - 為解析器添加一個(gè) -h/–help 選項(xiàng)(默認(rèn)值: True)
(11)allow_abbrev - 如果縮寫是無(wú)歧義的,則允許縮寫長(zhǎng)選項(xiàng) (默認(rèn)值:True)

add_argument()方法
(1)name or flags - 一個(gè)命名或者一個(gè)選項(xiàng)字符串的列表。(例如 foo 或 -f, --foo)
(2)action - 表示該選項(xiàng)要執(zhí)行的操作
(3)default - 默認(rèn)值
(4)dest - 用來(lái)指定參數(shù)的位置,被添加到 parse_args() 所返回對(duì)象上的屬性名。
(5)type - 為參數(shù)類型。(例如int)
(6)choices - 用來(lái)選擇輸入?yún)?shù)的范圍。(例如choice = [1, 5, 10])
(7)help - 用來(lái)描述這個(gè)選項(xiàng)的作用
(8)nargs - 命令行參數(shù)應(yīng)當(dāng)消耗的數(shù)目。
(9)const - 被一些 action 和 nargs 選擇所需求的常數(shù)。
(10)required - 此命令行選項(xiàng)是否可省略 (僅選項(xiàng)可用)。
(11)metavar - 在使用方法消息中使用的參數(shù)值示例。

import argparse
import logging

"""
" File Description:
" dump model  deploy
"
" Created by zz on 2021/6/22.
" Mail: zz@baidu.com
"""
logging.basicConfig(level=logging.DEBUG)


def parse_args():
	ap = argparse.ArgumentParser(prog="deploy tool", description='dump or calib model  deploy')
	ap.add_argument("deploy_path", type=str, help="deploy base path")
	ap.add_argument("exp_name", type=str, help="train exp name")
	subparser = ap.add_subparsers(title="model deploy subparser", dest="mode")

	# subparser
	model_deploy_parser = subparser.add_parser("model", help="model deploy")
	model_deploy_parser.add_argument("--default", default=False, type=bool, help="whether that's default model")

	calib_deploy_parser = subparser.add_parser("calib", help="offline calib deploy")
	calib_deploy_parser.add_argument("--input", required=True, type=str, help="model offline calib file")

	args = ap.parse_args()
	return args

# global args
args = parse_args()
mode = args.mode
deploy_path = args.deploy_path
exp_name = args.exp_name

def main():
	if mode == "model":
		_deploy_model()
	elif mode == "calib":
		_deploy_calib()
	else:
		logging.error( "Mode error")

if __name__ == '__main__':
	main()

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

您可能感興趣的文章:
  • python 如何利用argparse解析命令行參數(shù)
  • 淺談Python 命令行參數(shù)argparse寫入圖片路徑操作
  • Python如何使用argparse模塊處理命令行參數(shù)
  • Python中最好用的命令行參數(shù)解析工具(argparse)
  • Python解析命令行讀取參數(shù)--argparse模塊使用方法

標(biāo)簽:長(zhǎng)治 紅河 河南 樂(lè)山 上海 新疆 沈陽(yáng) 滄州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python argparse命令行參數(shù)解析(推薦)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    广元市| 滁州市| 墨竹工卡县| 荥阳市| 莱州市| 平潭县| 延边| 长泰县| 正宁县| 顺昌县| 泾阳县| 牡丹江市| 宁蒗| 平山县| 常州市| 邵阳市| 文昌市| 科尔| 双桥区| 白城市| 织金县| 鞍山市| 河北区| 阿坝| 遵化市| 搜索| 轮台县| 县级市| 惠水县| 武义县| 北票市| 石林| 永安市| 岫岩| 海宁市| 武隆县| 长子县| 安义县| 富顺县| 双峰县| 新余市|