Python?argparse庫的基本使用步驟
argparse庫是python下的一個(gè)命令行參數(shù)管理庫,支持int、str、float、bool、數(shù)組等5種基本數(shù)據(jù)類型。在解析命令行參數(shù)時(shí)還支持默認(rèn)值。此外,還支持修改命令行參數(shù),在代碼中增加命令行參數(shù)等操作。通過argparse庫,可以實(shí)現(xiàn)參數(shù)的簡易管理,控制代碼執(zhí)行中的一些流程或參數(shù)值。
基本用法
1、int支持
argparse的寫法 ,class_nums的默認(rèn)值為7
parser.add_argument("--class_nums", type=int, default=7)命令行傳參寫法(假設(shè)程序文件名稱為test.py), 傳入了新的值,覆蓋了默認(rèn)值
test.py --class_nums 8
2、str支持
argparse的寫法,load_from沒有設(shè)置默認(rèn)值,如果要設(shè)置的話請?jiān)O(shè)置default
parser.add_argument("--load_from", type=str, help='load trained model to generate predictions of validation set')命令行傳參寫法(假設(shè)程序文件名稱為test.py), 傳入了新的值"best.pth"賦值給load_from
test.py --load_from "best.pth"
3、float支持
argparse的寫法 ,lr的默認(rèn)值為=0.0003
parser.add_argument("--lr", type=float, default=0.0003)命令行傳參寫法(假設(shè)程序文件名稱為test.py), 傳入了新的值,覆蓋了默認(rèn)值
test.py --lr 0.001
4、bool支持
argparse的寫法 ,pretrained的默認(rèn)值為None。store_true表示傳入?yún)?shù)則為True
parser.add_argument("--pretrained", action="store_true")命令行傳參寫法(假設(shè)程序文件名稱為test.py), 此時(shí)pretrained的值為True
test.py --pretrained
5、數(shù)組支持
argparse的寫法 ,input_shape的默認(rèn)值為[256, 256]。nargs表示傳入?yún)?shù)可能存在多個(gè)值,也就是說傳入的參數(shù)不一定是2個(gè),3個(gè)也可以
parser.add_argument('--input_shape', nargs='+', type=int, default=[256, 256])
命令行傳參寫法(假設(shè)程序文件名稱為test.py), 此時(shí)input_shape的值為[512, 512]
test.py --input_shape 512 512
完整調(diào)用
以下代碼實(shí)現(xiàn)了取參數(shù)值,修改參數(shù)值,新增參數(shù)值的完整調(diào)用。在非控制臺(tái)環(huán)境下執(zhí)行下面代碼是無法修改默認(rèn)參數(shù)的,只能是在控制臺(tái)下執(zhí)行才能修改參數(shù)
import argparse
class Options:
def __init__(self):
parser = argparse.ArgumentParser('命名空間')
parser.add_argument("--class_nums", type=int, default=7)
parser.add_argument("--pretrained", action="store_true")
parser.add_argument("--lr", type=float, default=0.0003)
parser.add_argument("--load_from", type=str,
help='load trained model to generate predictions of validation set')
parser.add_argument('--input_shape', nargs='+', type=int, default=[256, 256])
self.parser = parser
def parse(self):
args = self.parser.parse_args()
return args
if __name__ == "__main__":
args = Options().parse()
print("\n原始參數(shù):")
print(args)
print("\n取參數(shù)值:")
print("args.class_nums:",args.class_nums)
print("\n修改參數(shù):")
args.input_shape=[512,512]
print(args)
print("\n新增參數(shù):")
args.new_key=[512,512]
print(args)
博主測試代碼:python .\test.py --input_shape 128 128
執(zhí)行輸出如下所示:
原始參數(shù):
Namespace(class_nums=7, input_shape=[128, 128], load_from=None, lr=0.0003, pretrained=False)
取參數(shù)值:
args.class_nums: 7
修改參數(shù):
Namespace(class_nums=7, input_shape=[512, 512], load_from=None, lr=0.0003, pretrained=False)
新增參數(shù):
Namespace(class_nums=7, input_shape=[512, 512], load_from=None, lr=0.0003, new_key=[512, 512], pretrained=False)
到此這篇關(guān)于Python argparse庫的基本使用的文章就介紹到這了,更多相關(guān)Python argparse庫使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python代碼如何實(shí)現(xiàn)切換中英文輸入法
這篇文章主要介紹了python代碼如何實(shí)現(xiàn)切換中英文輸入法,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-11-11
Python3.7 版本 lxml 模塊無法導(dǎo)入etree 問題及解決方法
這篇文章主要介紹了Python3.7 版本 lxml 模塊無法導(dǎo)入etree 問題及解決方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-01-01
關(guān)于python的bottle框架跨域請求報(bào)錯(cuò)問題的處理方法
這篇文章主要介紹了關(guān)于python的bottle框架跨域請求報(bào)錯(cuò)問題的處理方法,需要的朋友可以參考下2017-03-03
Spring http服務(wù)遠(yuǎn)程調(diào)用實(shí)現(xiàn)過程解析
這篇文章主要介紹了Spring http服務(wù)遠(yuǎn)程調(diào)用實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
利用python創(chuàng)建和識(shí)別PDF文件包的方法
PDF 文件包(Portfolio)是將多個(gè)文件組合成一個(gè)單獨(dú)的 PDF 文檔,它作為一種綜合且交互式的展示形式,可以展示各種類型的內(nèi)容,本文將介紹如何使用 Spire.PDF for Python 在 Python 中創(chuàng)建和識(shí)別 PDF 文件包,需要的朋友可以參考下2024-05-05
分享3個(gè)簡單的Python代碼高效運(yùn)行技巧
這篇文章主要介紹了分享3個(gè)簡單的Python代碼高效運(yùn)行技巧,下面主要分享三個(gè)有效的,方便理解的,執(zhí)行高效的實(shí)用技巧,需要的朋友可以參考一下2022-03-03

