日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

Python Argparse模块

發(fā)布時(shí)間:2025/3/21 python 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python Argparse模块 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

argparse模塊

  在Python中,argparse模塊是標(biāo)準(zhǔn)庫(kù)中用來(lái)解析命令行參數(shù)的模塊,用來(lái)替代已經(jīng)過(guò)時(shí)的optparse模塊。argparse模塊能夠根據(jù)程序中的定義從sys.argv中解析出來(lái)這些參數(shù),并自動(dòng)生成幫助和使用信息。

ArgumentParse解析器

  使用argparse解析命令行參數(shù)時(shí),首先需要?jiǎng)?chuàng)建一個(gè)解析器:

import argparseparser = argparse.ArgumentParser()

  ArgumentParser類的初始化函數(shù)有多個(gè)參數(shù),其中比較常用的是description,它是程序的描述信息,即幫助信息前面的文字。

添加參數(shù)選項(xiàng)

  為應(yīng)用程序添加參數(shù)選項(xiàng)需要使用ArgrmentParser對(duì)象的add_argument方法,該方法的格式如下:

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

  各個(gè)參數(shù)含義如下:

  • name/flags:參數(shù)的名字  
  • action:遇到參數(shù)時(shí)的動(dòng)作,默認(rèn)值時(shí)store。  
  • nargs:參數(shù)的個(gè)數(shù),可以時(shí)具體的數(shù)字,或者是”+“號(hào)或者”*“號(hào)。其中”*”號(hào)表示0或者多個(gè)參數(shù),“+”號(hào)表示1個(gè)或多個(gè)參數(shù)。  
  • const action 和 nargs:需要的常量值  
  • default:不指定參數(shù)時(shí)的默認(rèn)值  
  • type:參數(shù)的類型  
  • choices:參數(shù)允許的值  
  • required:可選參數(shù)是否可以省略  
  • help:參數(shù)的幫助信息  
  • metavar:在usage說(shuō)明中的參數(shù)名稱  
  • dest:解析后的參數(shù)名稱

action內(nèi)置的6種動(dòng)作:

store # 保存參數(shù)值,可能會(huì)先將參數(shù)值轉(zhuǎn)換成另一個(gè)數(shù)據(jù)類型。若沒(méi)有顯式指定動(dòng)作,則默認(rèn)為該動(dòng)作。store_const # 保存一個(gè)被定義為參數(shù)規(guī)格一部分的值,而不是一個(gè)來(lái)自參數(shù)解析而來(lái)的值。這通常用于實(shí)現(xiàn)非布爾值的命令行標(biāo)記。store_ture/store_false # 保存相應(yīng)的布爾值。這兩個(gè)動(dòng)作被用于實(shí)現(xiàn)布爾開(kāi)關(guān)。append #將值保存到一個(gè)列表中。若參數(shù)重復(fù)出現(xiàn),則保存多個(gè)值。append_const #將一個(gè)定義在參數(shù)規(guī)格中的值保存到一個(gè)列表中。version #打印關(guān)于程序的版本信息,然后退出

解析參數(shù)

  解析命令行參數(shù)需要用到AgrumentParser對(duì)象的parse_args方法,該方法返回一個(gè)NameSpace對(duì)象。獲取對(duì)象后,參數(shù)值可以通過(guò)屬性的方式進(jìn)行訪問(wèn)。由于指定了默認(rèn)值,那么直接運(yùn)行,也不會(huì)報(bào)錯(cuò)

parser.add_argument('-host',action='store',dest='server',default='localhost',help='connect to host') parser.add_argument('-p',action='store',dest='port',default='3306',help='the port to host') parser.parse_args()# parser.parse_args() 存儲(chǔ)的值 Namespace(port='3306', server='localhost')

  存貯布爾類型的值的時(shí)候action,存儲(chǔ)為store_true類型。

  使用argparse進(jìn)行參數(shù)解析還有另一個(gè)好處,它能夠根據(jù)我們的選項(xiàng)定義自動(dòng)生成幫助信息。(自動(dòng)追加-h選項(xiàng),打印幫助信息)

模仿MySQL客戶端的命令參數(shù)  

import argparseparser = argparse.ArgumentParser(description='A Python-MySQL client')def getparser():parser.add_argument('--host',action='store',dest='host',required=True,help='connect to host')parser.add_argument('-u','--username',action='store',dest='user',required=True,help='user for login')parser.add_argument('-p','--password',action='store',dest='password',required=True,help='password to use when user connecting to server')parser.add_argument('-P','--port',action='store',dest='port',default=3306,type=int,help='port number to use for connection or 3306 or default')parser.add_argument('-v','--version',action='version',version='%(prog)s 0.1')return parser.parse_args()def main():parser = getparser()conn_args = dict(host=parser.host,username=parser.user,password=parser.password,port=parser.port)print(conn_args)if __name__ == '__main__':main()

PS:如果 port參數(shù)可以指定多個(gè)參數(shù),那么可以添加 nargs='+'即可。

?

?

更詳細(xì)的使用方法參考,戳我

  

轉(zhuǎn)載于:https://www.cnblogs.com/zhichaoma/p/8001451.html

總結(jié)

以上是生活随笔為你收集整理的Python Argparse模块的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。