1. 程式人生 > 其它 >Python argparse模組用法

Python argparse模組用法

Python argparse模組用法

argparse是python推薦的命令列解析模組,命令列執行指令碼時可以新增引數,在python指令碼中通過該模組去解析引數,也可以限制引數型別,sys.argv也可以接收引數。

1. 示例

import argparse


# 建立解析物件, description是對它的描述
parser = argparse.ArgumentParser(description="test argparse")

# 向parser物件新增命令列引數和選項,這裡兩個引數,一個是長引數:--param1,一個是短引數:-p1
parser.add_argument("--param1", "-p1", type=str)

# 對命令列引數進行解析
args = parser.parse_args()

執行:

  • 終端輸入命令:python argparse_demo.py -p1=這裡是引數p1
  • 執行結果:
Namespace(param1='這裡是引數p1')
這裡是引數p1

add_argument()引數介紹:

  • type:指定引數型別
  • required:引數是否必填,如果為True則必須要傳入對應的值
  • help:python test.py -h 會出現對應help的內容
  • nargs:指定這個引數後面的值有多少個,預設為1個,也可以寫正則符號:+、*、數字
  • choices:設定引數範圍

2. 多個引數情況

如果有多個引數需要傳給指令碼執行,可以通過多新增add_argument(),示例:

import argparse


# 建立解析物件
parser = argparse.ArgumentParser(description="test argparse")

# 向parser物件新增命令列引數和選項,長引數--param1,短引數-p1
parser.add_argument("--param1", "-p1", type=str)
parser.add_argument("--param2", "-p2", type=int)
parser.add_argument("--param3", "-p", type=int)

# 對命令引數解析
args = parser.parse_args()
print(args)

# 輸出每個引數的值
print(args.param1,"\n", args.param2,"\n", args.param3)

執行:

  • 終端輸入命令:python argparse_demo.py -p1=111 -p2=2 -p3 1 2 3
  • 執行結果:
Namespace(param1='111', param2=2, param3=[1, 2, 3])
111
 2
 [1, 2, 3]

參考自文章:https://blog.csdn.net/rongDang/article/details/93095057