溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中argparse模塊有什么用

發(fā)布時(shí)間:2021-12-30 16:27:57 來(lái)源:億速云 閱讀:447 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)python中argparse模塊有什么用,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

1.argparse模塊簡(jiǎn)介
  • argparse是python標(biāo)準(zhǔn)庫(kù)里面用來(lái)處理命令行參數(shù)的庫(kù);

  • 大多數(shù)情況下,腳本很可能需要多個(gè)參數(shù),而且每次參數(shù)的類型用處各不相同,那么這個(gè)時(shí)候在參數(shù)前添加標(biāo)簽表明參數(shù)的類型和用途便十分有用,而利用argparse模塊可以很方便得實(shí)現(xiàn)這一目的;

2.argparse模塊的使用步驟
# 導(dǎo)入模塊
import argparse
# 此函數(shù)作用為:自定義打印幫助信息,且可以通過(guò)轉(zhuǎn)義符號(hào)帶顏色打印
def print_help_description():
    print('\033[1;35m這里可以打印你的參數(shù)規(guī)則\033[0m')
    print('\033[1;35m腳本執(zhí)行示例: python server.py -s=nginx -a=running\033[0m')
# 實(shí)例化parser解析對(duì)象
parser = argparse.ArgumentParser(add_help=False) # False表示不顯示幫助信息
# 給parser對(duì)象綁定參數(shù)
parser.add_argument('-h', "--help", help="\033[1;36m顯示腳本幫助信息\033[0m", action='store_true', )
parser.add_argument('-s', "--service",help="\033[1;36mmysql, httpd, nginx, redismongodb \033[0m", )
parser.add_argument('-a', "--application",help="\033[1;36mhealth, ping, running, \033[0m")
# 解析參數(shù)
args = parser.parse_args()
# 開始對(duì)腳本傳遞的參數(shù)進(jìn)行判斷
if not args.service or not args.application: # 如果兩個(gè)條件都為False,才會(huì)進(jìn)入幫助信息的打印
    parser.print_help() # 打印幫助信息
    print_help_description()  # 打印自定義函數(shù)
else:
    if args.service == 'mysql':
        if args.application == 'health':
            print('check health')
        elif args.application == 'ping':
            print('check ping')
        elif args.application == 'running':
            print('check running')
        else:
            parser.print_help()
            print_help_description()
    elif args.service == 'httpd':
        if args.application == 'health':
            print('check health')
        elif args.application == 'ping':
            print('check ping')
        elif args.application == 'running':
            print('check running')
        else:
            parser.print_help()
            print_help_description()
    else:
        parser.print_help()
        print_help_description()
  • import argparse 首先導(dǎo)入模塊;

  • parser = argparse.ArgumentParser() 創(chuàng)建一個(gè)解析對(duì)象;

  • parser.add_argument() 向該對(duì)象中添加你要關(guān)注的命令行參數(shù)和選項(xiàng);

  • parser.parse_args() 進(jìn)行解析;

3.ArgumentParser()方法參數(shù)

ArgumentParser(prog=None, usage=None,description=None, epilog=None, parents=[],formatter_class=argparse.HelpFormatter, prefix_chars='-',fromfile_prefix_chars=None, argument_default=None,conflict_handler='error', add_help=True);

  • prog:程序的名字(默認(rèn):sys.argv[0]);

  • usage: 描述程序用法的字符串(默認(rèn):從解析器的參數(shù)生成);

  • description: 參數(shù)幫助信息之前的文本(默認(rèn):空);

  • epilog :參數(shù)幫助信息之后的文本(默認(rèn):空);

  • parents :ArgumentParser 對(duì)象的一個(gè)列表,這些對(duì)象的參數(shù)應(yīng)該包括進(jìn)去;

  • formatter_class:定制化幫助信息的類;

  • prefix_chars:可選參數(shù)的前綴字符集(默認(rèn):‘-‘);

  • fromfile_prefix_chars:額外的參數(shù)應(yīng)該讀取的文件的前綴字符集(默認(rèn):None);

  • argument_default:參數(shù)的全局默認(rèn)值(默認(rèn):None);

  • conflict_handler:解決沖突的可選參數(shù)的策略(通常沒有必要);

  • add_help:給解析器添加-h/–help 選項(xiàng)(默認(rèn):True);

4.add_argument()方法參數(shù)

add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest]);

  • name or flags:指定參數(shù)的形式,想寫幾個(gè)寫幾個(gè),不過(guò)我們一般就寫兩個(gè),一個(gè)短參數(shù)一個(gè)長(zhǎng)參數(shù),例如 ”-f”, “–file”;

  • action: 命令行遇到參數(shù)時(shí)的動(dòng)作,默認(rèn)值是 store;

  • nargs :指定這個(gè)參數(shù)后面的value有多少個(gè);

  • const : action 和 nargs 所需要的常量值;

  • default :不指定參數(shù)時(shí)的默認(rèn)值;

  • type :命令行參數(shù)應(yīng)該被轉(zhuǎn)換成的類型;

  • choices :參數(shù)可允許的值的一個(gè)容器;

  • required :可選參數(shù)是否可以省略 (僅針對(duì)可選參數(shù));

  • help :參數(shù)的幫助信息,當(dāng)指定為 argparse.SUPPRESS 時(shí)表示不顯示該參數(shù)的幫助信息;

  • metavar :在 usage 說(shuō)明中的參數(shù)名稱,對(duì)于必選參數(shù)默認(rèn)就是參數(shù)名稱,對(duì)于可選參數(shù)默認(rèn)是全大寫的參數(shù)名稱;

  • dest :解析后的參數(shù)名稱,默認(rèn)情況下,對(duì)于可選參數(shù)選取最長(zhǎng)的名稱,中劃線轉(zhuǎn)換為下劃線;

關(guān)于“python中argparse模塊有什么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI