python?argparse的使用步驟(全網(wǎng)最全)
一、前言
在學(xué)習(xí)深度學(xué)習(xí)會(huì)發(fā)現(xiàn)都比較愛用python這個(gè)argparse,雖然基本能理解,但沒有仔細(xì)自己動(dòng)手去寫,因此這里寫下來作為自己本人的學(xué)習(xí)筆記
argparse是python的一個(gè)命令行參數(shù)解析包,在代碼需要頻繁修改參數(shù)時(shí),方便使用,主要用法就是在命令行輸入自己想要修改的參數(shù)。
二、關(guān)于argparse用法常用框架
import argparse
def get_parser():
# argparse.ArgumentParser生成argparse對(duì)象 description為描述信息,當(dāng)在命令行輸入需要顯示幫助信息時(shí),會(huì)顯示
parser = argparse.ArgumentParser(description="pytorch unet training")
# 路徑參數(shù)設(shè)置 help為參數(shù)的幫助信息
parser.add_argument("--data_path", default="./", help="DRIVE root")
# 預(yù)測(cè)類別數(shù)量 type如果不指定需要輸入的是str類型
parser.add_argument("--num_classes", default=1, type=int)
# 指定設(shè)備使用
parser.add_argument("--device", default="cuda", help="training device")
# 指定batch size大小 "-b", "--batch_size"表示兩個(gè)都可以在命令行使用
parser.add_argument("-b", "--batch_size", default=4, type=int)
return parser
if __name__ =='__main__':
parser = get_parser()
args = parser.parse_args()
print(args)如上get_parser()為本文會(huì)介紹的一些使用方法,這個(gè)python文件名為python_argparse_test1.py,其中
parser = argparse.ArgumentParser(description="pytorch unet training")用來創(chuàng)建parser對(duì)象
add_argument()用來增加參數(shù)
args = parser.parse_args()中parse_args()獲取解析的參數(shù)
1.獲取參數(shù)列表
當(dāng)命令行輸入python python_argparse_test1.py時(shí),打印args獲取到的參數(shù)得到:
Namespace(batch_size=4, data_path='./', device='cuda', num_classes=1)
表示這個(gè)參數(shù)解析器解析到的參數(shù)列表
2.獲取幫助信息
輸入python python_argparse_test1.py -h或者python python_argparse_test1.py --help顯示信息,其中usage顯示了它的用法,pytorch unet training為創(chuàng)建對(duì)象時(shí)的description,再下面是各個(gè)參數(shù)信息與用法

3.命令行修改參數(shù)
import argparse
def get_parser():
# argparse.ArgumentParser生成argparse對(duì)象 description為描述信息,當(dāng)在命令行輸入需要顯示幫助信息時(shí),會(huì)顯示
parser = argparse.ArgumentParser(description="pytorch unet training")
# 路徑參數(shù)設(shè)置 help為參數(shù)的幫助信息 default為默認(rèn)參數(shù)
parser.add_argument("--data_path", default="./", help="DRIVE root")
# 預(yù)測(cè)類別數(shù)量 type如果不指定需要輸入的是str類型
parser.add_argument("--num_classes", default=1, type=int)
# 指定設(shè)備使用
parser.add_argument("--device", default="cuda", help="training device")
# 指定batch size大小 "-b", "--batch_size"表示兩個(gè)都可以在命令行使用
parser.add_argument("-b", "--batch_size", default=4, type=int)
return parser
if __name__ =='__main__':
parser = get_parser()
args = parser.parse_args()
print("data_path: ",args.data_path)
print("num_classes: ", args.num_classes)命令行輸入:python python_argparse_test1.py --data_path Desktop --num_classer 4,得到結(jié)果如下:
data_path: Desktop
num_classes: 4
可以看到通過命令行確實(shí)修改了參數(shù)
4.'_'與"__"的使用
if __name__ =='__main__':
parser = get_parser()
args = parser.parse_args()
print("-b: ",args.b)
print("--batch_size: ", args.batch_size)命令行輸入python python_argparse_test1.py -b 10 --batch_size 20,這時(shí)會(huì)報(bào)錯(cuò):
![]()
這是因?yàn)楫?dāng)'_'和'__'同時(shí)存在時(shí),系統(tǒng)默認(rèn)后者為參數(shù)名
把上述代碼改為:
if __name__ =='__main__':
parser = get_parser()
args = parser.parse_args()
print("--batch_size: ",args.batch_size)但命令行不受影響,繼續(xù)執(zhí)行命令 python python_argparse_test1.py -b 10得到:
--batch_size: 10
5.type的使用
type會(huì)把輸入的命令行字符強(qiáng)制轉(zhuǎn)化為type的類型
if __name__ =='__main__':
parser = get_parser()
args = parser.parse_args()
print("--batch_size type: ",type(args.batch_size))命令行輸入:python python_argparse_test1.py --batch_size '10'得到:
--batch_size type: <class 'int'>
6.required:用來表示這個(gè)參數(shù)是否需要提供
parser.add_argument("--num_classes", default=1, type=int, required=True)如果輸入命令python python_argparse_test1.py
這將會(huì)報(bào)錯(cuò)提示確實(shí)需要的參數(shù)
python_argparse_test1.py: error: the following arguments are required: --num_classes
7.choices選擇參數(shù)
parser.add_argument('-arch', required=True, choices=['alexnet', 'vgg'])如果運(yùn)行命令:python python_argparse_test1.py -arch cnn
這將會(huì)報(bào)錯(cuò)
python_argparse_test1.py: error: argument -arch: invalid choice: 'cnn' (choose from 'alexnet', 'vgg')
參考博客:
argparse簡(jiǎn)要用法總結(jié) | Yunfeng's Simple Blog (vra.github.io)
到此這篇關(guān)于python argparse的使用步驟(全網(wǎng)最全)的文章就介紹到這了,更多相關(guān)python argparse使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 關(guān)于Python參數(shù)解析器argparse的應(yīng)用場(chǎng)景
- Python命令行參數(shù)解析之a(chǎn)rgparse模塊詳解
- 詳解Python中的argparse模塊
- Python?內(nèi)置模塊?argparse快速入門教程
- 深入講解Python命令行解析模塊argparse
- python中的argparse基本用法(使用步驟)
- python?命令行參數(shù)模塊argparse的實(shí)現(xiàn)
- Python中命令行參數(shù)argparse模塊的使用
- python命令行參數(shù)argparse模塊基本用法詳解
- Python中argparse基本用法小結(jié)
相關(guān)文章
python PIL中ImageFilter模塊圖片濾波處理和使用方法
這篇文章主要介紹PIL中ImageFilter模塊幾種圖片濾波處理和使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11
flask 實(shí)現(xiàn)上傳圖片并縮放作為頭像的例子
今天小編就為大家分享一篇flask 實(shí)現(xiàn)上傳圖片并縮放作為頭像的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python socket多線程通訊實(shí)例分析(聊天室)
這篇文章主要介紹了python socket多線程通訊方法,以聊天室程序?qū)嵗治隽薖ython基于Socket實(shí)現(xiàn)多線程通信的相關(guān)技巧,需要的朋友可以參考下2016-04-04
Python實(shí)現(xiàn)在PDF插入頁(yè)眉頁(yè)腳
在處理篇幅較長(zhǎng)、結(jié)構(gòu)復(fù)雜的PDF文檔時(shí),頁(yè)眉和頁(yè)腳的設(shè)計(jì)與插入就顯得尤為重要,本文主要介紹了如何使用Python代碼操作PDF文檔,在PDF文檔中插入自定義的頁(yè)眉和頁(yè)腳,有需要的可以參考下2024-04-04
變長(zhǎng)雙向rnn的正確使用姿勢(shì)教學(xué)
這篇文章主要介紹了變長(zhǎng)雙向rnn的正確使用姿勢(shì),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
python數(shù)據(jù)分析matplotlib的基礎(chǔ)繪圖使用
這篇文章主要為大家介紹了python數(shù)據(jù)分析matplotlib的基礎(chǔ)繪圖使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
如何用Python對(duì)數(shù)學(xué)函數(shù)進(jìn)行求值、求偏導(dǎo)
這篇文章主要介紹了如何用Python對(duì)數(shù)學(xué)函數(shù)進(jìn)行求值、求偏導(dǎo)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
Python使用機(jī)器學(xué)習(xí)模型實(shí)現(xiàn)溫度預(yù)測(cè)詳解
使用?Python?可以使用機(jī)器學(xué)習(xí)模型進(jìn)行溫度預(yù)測(cè)。常用的模型有回歸分析、隨機(jī)森林等。本文就來和大家來了具體實(shí)現(xiàn)方法,希望對(duì)大家有所幫助2023-01-01
如何使用Python設(shè)置和讀取config.ini文件
使用配置文件是一種常見的方法,而INI文件是一種簡(jiǎn)單而常見的配置文件格式,在本文中,我將介紹如何使用Python設(shè)置和讀取INI格式的配置文件,需要的朋友可以參考下2024-03-03

