Python的argparse庫(kù)使用詳解
argparse是python標(biāo)準(zhǔn)庫(kù)里面用來(lái)處理命令行參數(shù)的庫(kù)
命令行參數(shù)分為位置參數(shù)和選項(xiàng)參數(shù):
位置參數(shù)就是程序根據(jù)該參數(shù)出現(xiàn)的位置來(lái)確定的
如:[root@openstack_1 /]# ls root/ #其中root/是位置參數(shù)
選項(xiàng)參數(shù)是應(yīng)用程序已經(jīng)提前定義好的參數(shù),不是隨意指定的
如:[root@openstack_1 /]# ls -l # -l 就是ls命令里的一個(gè)選項(xiàng)參數(shù)、
基本使用
import argparse # 創(chuàng)建解析器 parser = argparse.ArgumentParser(description = 'This is a test') parser.parse_args()
可以在shell中測(cè)試:
$ python test.py --help ...
添加參數(shù)
import argparse parser = argparse.ArgumentParser(description = 'This is a test') parser.add_argument("-p","--port",help='increase output port') # 定義了可選參數(shù)-p和--port,賦值后,其值保存在args.port中(其值都是保存在最后一個(gè)定義的參數(shù)中) args = parser.parse_args() print(args.echo)
argparse.ArgumentParser()方法參數(shù)須知:一般我們只選擇用description
prog=None - 程序名
description=None, - help時(shí)顯示的開(kāi)始文字
epilog=None, - help時(shí)顯示的結(jié)尾文字
parents=[], -若與其他參數(shù)的一些內(nèi)容一樣,可以繼承
formatter_class=argparse.HelpFormatter, - 自定義幫助信息的格式
prefix_chars='-', - 命令的前綴,默認(rèn)是‘-'
fromfile_prefix_chars=None, - 命令行參數(shù)從文件中讀取
argument_default=None, - 設(shè)置一個(gè)全局的選項(xiàng)缺省值,一般每個(gè)選項(xiàng)單獨(dú)設(shè)置
conflict_handler='error', - 定義兩個(gè)add_argument中添加的選項(xiàng)名字發(fā)生沖突時(shí)怎么處理,默認(rèn)處理是拋出異常
add_help=True - 是否增加-h/--help選項(xiàng),默認(rèn)是True)
add_argument()方法參數(shù)須知:
name or flags... - 必選,指定參數(shù)的形式,一般寫(xiě)兩個(gè),一個(gè)短參數(shù),一個(gè)長(zhǎng)參數(shù)
使用時(shí)候:
$ python test.py -p 50 或 $ python test.py --port 50
指定類(lèi)型
我們也可以在添加參數(shù)的時(shí)候指定其類(lèi)型。
import argparse parser = argparse.ArgumentParser(description = 'This is a test') parser.add_argument("square",help="display a given number",type=int) # 指定給square的參數(shù)為int類(lèi)型
可選參數(shù)
import argparse parser = argparse.ArgumentParser() parser.add_argument("-v", help="increase output verbosity") args = parser.parse_args() if args.v: print("v turned on")
使用:
$ python test.py -v any
文檔
更多應(yīng)用請(qǐng)百度或者查文檔:https://docs.python.org/3/library/argparse.html#module-argparse
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決jupyter 在瀏覽器中 代碼不執(zhí)行的問(wèn)題
這篇文章主要介紹了解決jupyter 在瀏覽器中 代碼不執(zhí)行的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03Python實(shí)現(xiàn)學(xué)生管理系統(tǒng)(面向?qū)ο蟀?
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)面向?qū)ο蟀娴膶W(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06用Python代碼來(lái)繪制彭羅斯點(diǎn)陣的教程
這篇文章主要介紹了用Python代碼來(lái)繪制彭羅斯點(diǎn)陣的教程,核心代碼主要就是一行簡(jiǎn)單的lambda匿名函數(shù),需要的朋友可以參考下2015-04-04python并發(fā)編程多進(jìn)程 互斥鎖原理解析
這篇文章主要介紹了python并發(fā)編程多進(jìn)程 互斥鎖原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08python使用range函數(shù)計(jì)算一組數(shù)和的方法
這篇文章主要介紹了python使用range函數(shù)計(jì)算一組數(shù)和的方法,涉及Python中range函數(shù)的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-05-05Python自動(dòng)發(fā)送郵件的方法實(shí)例總結(jié)
這篇文章主要介紹了Python自動(dòng)發(fā)送郵件的方法,結(jié)合實(shí)例形式總結(jié)分析了Python使用smtplib和email模塊發(fā)送郵件的相關(guān)使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2018-12-12