Python?內置模塊?argparse快速入門教程
一、argparse 簡介
argparse
模塊是 Python 內置的用于命令項選項與參數(shù)解析的模塊,argparse
模塊可以讓人輕松編寫用戶友好的命令行接口,能夠幫助程序員為模型定義參數(shù)。
使用 argparse 模塊的四個步驟:
① 導入 argparse 包
import argparse
② 創(chuàng)建一個命令行解析器對象
# 創(chuàng)建 ArgumentParser() 對象 parser_ = argparse.ArgumentParser(description="study argparse")
③ 給解析器添加命令行參數(shù) ——調用 add_argument() 方法添加參數(shù)
parser_.add_argument('food')
④ 解析命令行的參數(shù) ——使用 parse_args() 解析添加的參數(shù),并將結果用 print 語句輸出
args = parser_.parse_args() print(args.food) print(type(args.food))
代碼示例:
# -*- coding: utf-8 -*- # @Time : 2023-04-19 15:48 # @Author : AmoXiang # @File : test.py # @Software: PyCharm # @Blog : https://blog.csdn.net/xw1680 import argparse # 1.導入argparse # 2.創(chuàng)建一個命令行解析器對象 parser_ = argparse.ArgumentParser(description="study argparse") # 3.給解析器添加命令行參數(shù) parser_.add_argument('food') # 4.解析命令行的參數(shù)并打印 args = parser_.parse_args() print(args.food) print(type(args.food))
運行結果如下:
對上面代碼進行解讀:
首先我們導入 argparse
這個包,然后包中的 ArgumentParser 類生成一個 parser 對象(其中的 description 對參數(shù)解析器的作用進行描述),當我們在命令行顯示幫助信息的時候會看到 description 描述的信息。例如:python test.py -h
接著我們通過對象的 add_argument 函數(shù)來增加參數(shù)。這里我們增加了 food 參數(shù),最后采用對象的 parse_args 獲取解析的參數(shù)。打印結果如下圖所示:
二、The add_argument() method
add_argument() 方法定義如何解析單個命令行參數(shù), 語法如下:
ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
后續(xù)示例代碼會用到的參數(shù)解釋:
① name or flags - Either a name or a list of option strings, e.g. foo or -f, --foo. 必要參數(shù)
② choices - A container of the allowable values for the argument.
③ type - The type to which the command-line argument should be converted.
④ default - The value produced if the argument is absent from the command line.
⑤ help - A brief description of what the argument does.
name or flags 第一種寫法如下:
import argparse parser_ = argparse.ArgumentParser(description="study argparse") # 該種方式則要求必須輸入該參數(shù) parser_.add_argument('food') args = parser_.parse_args() print(args.food) print(type(args.food))
命令行運行方式:
E:\download\AccountPool-master>python3 test.py 2 2 <class 'str'> 這種方式會將 2 賦值給food E:\download\AccountPool-master>python3 test.py noodles noodles <class 'str'> 這種方式會將 noodles 賦值給food
name or flags 第二種寫法如下:
# 1.--house 代表參數(shù)名稱 # 2.type 代表輸入的參數(shù)類型,從命令行輸入的參數(shù),默認是字符串類型 # 3.default 代表如果該參數(shù)不輸入,則會默認使用該值 import argparse parser_ = argparse.ArgumentParser(description="study argparse") parser_.add_argument('--house', type=int, default=0) args = parser_.parse_args() print(args.house) print(type(args.house))
命令行運行方式:
E:\download\AccountPool-master>python3 test.py --house 1 1 <class 'int'> E:\download\AccountPool-master>python3 test.py 0 <class 'int'>
name or flags 第三種寫法如下:
# -gf 代表短選項,在命令行輸入-gf和--girlfriend的效果是一樣的,作用是簡化參數(shù)輸入 # --girlfriend 代表完整的參數(shù)名稱,可以盡量做到讓人見名知意,需要注意的是如果想通過解析后的參數(shù)取出該值,必須使用帶--的名稱 # choices 代表輸入?yún)?shù)的只能是這個choices里面的內容,其他內容則會保錯 import argparse parser_ = argparse.ArgumentParser(description="study argparse") parser_.add_argument('-gf', '--girlfriend', choices=['jingjing', 'lihuan']) parser_.add_argument('food') args = parser_.parse_args() print(args.food) print(type(args.food)) print(args.girlfriend) print(type(args.girlfriend))
命令行運行方式:
E:\download\AccountPool-master>python3 test.py --girlfriend jingjing usage: test.py [-h] [-gf {jingjing,lihuan}] food test.py: error: the following arguments are required: food E:\download\AccountPool-master>python3 test.py --girlfriend jingjing amoxiang amoxiang <class 'str'> jingjing <class 'str'> E:\download\AccountPool-master>python3 test.py -gf jingjing amoxiang amoxiang <class 'str'> jingjing <class 'str'> E:\download\AccountPool-master>python3 test.py -gf amoxiang1 amoxiang2 usage: test.py [-h] [-gf {jingjing,lihuan}] food test.py: error: argument -gf/--girlfriend: invalid choice: 'amoxiang1' (choose from 'jingjing', 'lihuan')
到此這篇關于快速入門 Python 內置模塊 argparse的文章就介紹到這了,更多相關Python 內置模塊 argparse內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
如何使用python統(tǒng)計字符在文件中出現(xiàn)的次數(shù)
在開發(fā)過程中很多時候我們有統(tǒng)計單個字符或者字符串在另一個字符串中出現(xiàn)次數(shù)的需求,下面這篇文章主要給大家介紹了關于如何使用python統(tǒng)計字符在文件中出現(xiàn)的次數(shù)的相關資料,需要的朋友可以參考下2023-03-03Python的Django框架中消息通知的計數(shù)器實現(xiàn)教程
通知的計數(shù)器非常有用,新通知時+1和讀過通知后的-1是最基本的功能,這里我們就來看一下Python的Django框架中消息通知的計數(shù)器實現(xiàn)教程2016-06-06Python入門教程(三十一)Python的Try和Except
這篇文章主要介紹了Python入門教程(三十一)Python的Try Except,當我們調用Python并發(fā)生錯誤或異常時,通常會停止并生成錯誤消息,2023-05-05
可以使用try語句處理這些異常,需要的朋友可以參考下