欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

argparse?模塊簡介

 更新時間:2023年02月27日 14:46:24   作者:craftsman2020  
argparse是一個用來解析命令行參數(shù)的 Python 庫,它是 Python 標準庫的一部分,基于 python 2.7 的stdlib 代碼,這篇文章主要介紹了argparse?模塊詳解,需要的朋友可以參考下

1. argparse 模塊簡介

argparse是一個用來解析命令行參數(shù)的 Python 庫,它是 Python 標準庫的一部分?;?python 2.7 的stdlib 代碼。

argparse模塊使編寫用戶友好的命令行界面變得容易。程序定義了所需的參數(shù),而 argparse 將找出如何從 sys.argv(命令行)中解析這些參數(shù)。argparse 模塊還會自動生成幫助和使用消息,并在用戶為程序提供無效參數(shù)時發(fā)出錯誤。

2. 未使用argparse示例

一般未使用到終端命令,對于一些需要變量賦值的程序,我們往往:

1、直接在程序中(或配置文件)寫死。
2、或者利用input在命令行多次輸入 這樣不易多次調(diào)試及修改運行,如下就是一個示例:
import math

def cal_vol(radius,height):
    vol = math.pi * pow(radius,2) * height
    return vol
if __name__=='__main__':
    print(cal_vol(2,4))

argparse

3. 使用argparse示例

3.1 argparse簡單示例

使用argparse的主要步驟:

導(dǎo)入argparse包;創(chuàng)建ArgumentParser()參數(shù)對象;調(diào)用add_argument()方法往參數(shù)對象中添加參數(shù);使用parse_args()解析添加參數(shù)的參數(shù)對象,獲得解析對象;程序的其他部分需要使用命令行參數(shù)時,用解析對象.參數(shù)獲取。

如下是一個簡單的示例:

import math
import argparse  # 1、導(dǎo)入argpase包
def parse_args():
    parse = argparse.ArgumentParser(description='Calculate cylinder volume')  # 2、創(chuàng)建參數(shù)對象
    parse.add_argument('radius', type=int, help='Radius of Cylinder')  # 3、往參數(shù)對象添加參數(shù)
    parse.add_argument('height', type=int, help='height of Cylinder')
    args = parse.parse_args()  # 4、解析參數(shù)對象獲得解析對象
    return args
# 計算圓柱體積
def cal_vol(radius, height):
    vol = math.pi * pow(radius, 2) * height
    return vol
if __name__ == '__main__':
    args = parse_args()
    print(cal_vol(args.radius, args.height))  # 5、使用解析對象.參數(shù)獲取使用命令行參數(shù)

注:此時因未指定,所以命令行參數(shù)輸入默認按順序賦值,順序不同會造成結(jié)果不同

在這里插入圖片描述

在這里插入圖片描述

默認命令-h可以獲取添加參數(shù)時設(shè)置的幫助信息

在這里插入圖片描述

3.2 argparse進階示例

add_argument()方法(定義如何解析命令行參數(shù)):

在這里插入圖片描述

參數(shù)解釋如下:

  • name or flags - 選項字符串的名字或者列表,例如 foo 或者 -f, --foo。

  • action - 命令行遇到參數(shù)時的動作,默認值是 store。

    • – store_const,表示賦值為const;
    • – append,將遇到的值存儲成列表,也就是如果參數(shù)重復(fù)則會保存多個值;
    • – append_const,將參數(shù)規(guī)范中定義的一個值保存到一個列表;
    • – count,存儲遇到的次數(shù);此外,也可以繼承 argparse.Action 自定義參數(shù)解析;
  • nargs - 應(yīng)該讀取的命令行參數(shù)個數(shù),可以是

    • 具體的數(shù)字,或者是?號,當(dāng)不指定值時對于 Positional argument 使用 default,對于 Optional argument 使用 const
    • 或者是 * 號,表示 0 或多個參數(shù);
    • 或者是 + 號表示 1 或多個參數(shù)。
  • const - action 和 nargs 所需要的常量值。

  • default - 不指定參數(shù)時的默認值。

  • type - 命令行參數(shù)應(yīng)該被轉(zhuǎn)換成的類型。默認是字符串類型。

  • choices - 參數(shù)可允許的值的一個容器。

  • required - 可選參數(shù)是否可以省略 (僅針對可選參數(shù))。

  • help - 參數(shù)的幫助信息,當(dāng)指定為 argparse.SUPPRESS 時表示不顯示該參數(shù)的幫助信息.

  • metavar - 在 usage 說明中的參數(shù)名稱,對于必選參數(shù)默認就是參數(shù)名稱,對于可選參數(shù)默認是全大寫的參數(shù)名稱.

  • dest - 解析后的參數(shù)名稱,默認情況下,對于可選參數(shù)選取最長的名稱,中劃線轉(zhuǎn)換為下劃線.

3.2.1 可選參數(shù)設(shè)置

import math
import argparse  # 1、導(dǎo)入argpase包
def parse_args():
    parse = argparse.ArgumentParser(description='Calculate cylinder volume')  # 2、創(chuàng)建參數(shù)對象
    parse.add_argument('--radius', default=2, type=int, help='Radius of Cylinder')  # 3、往參數(shù)對象添加參數(shù)
    parse.add_argument('--height', default=4, type=int, help='height of Cylinder')
    args = parse.parse_args()  # 4、解析參數(shù)對象獲得解析對象
    return args
def cal_vol(radius, height):
    vol = math.pi * pow(radius, 2) * height
    return vol
if __name__ == '__main__':
    args = parse_args()
    print(cal_vol(args.radius, args.height))  # 5、使用解析對象.參數(shù)獲取使用命令行參數(shù)

通過在參數(shù)名前加 - -,設(shè)置為可選參數(shù),如果未輸入,則使用default默認值(若未設(shè)置default,則會默認賦值None),如下示例:

在這里插入圖片描述

3.2.2 可選參數(shù)引用名

import math
import argparse  # 1、導(dǎo)入argpase包
def parse_args():
    parse = argparse.ArgumentParser(description='Calculate cylinder volume')  # 2、創(chuàng)建參數(shù)對象
    parse.add_argument('-r', '--radius', default=2, type=int, help='Radius of Cylinder')  # 3、往參數(shù)對象添加參數(shù)
    parse.add_argument('-H', '--height', default=4, type=int, help='height of Cylinder')
    args = parse.parse_args()  # 4、解析參數(shù)對象獲得解析對象
    return args

def cal_vol(radius, height):
    vol = math.pi * pow(radius, 2) * height
    return vol

if __name__ == '__main__':
    args = parse_args()
    print(cal_vol(args.radius, args.height))  # 5、使用解析對象.參數(shù)獲取使用命令行參數(shù)

通過將可選參數(shù)設(shè)置引用名,可以縮短參數(shù)名,簡化命令行參數(shù)輸入:

在這里插入圖片描述

如下:-r和- -radius都可以

在這里插入圖片描述

在這里插入圖片描述

3.2.3 清除幫助中的參數(shù)名信息

import math
import argparse  # 1、導(dǎo)入argpase包
def parse_args():
    parse = argparse.ArgumentParser(description='Calculate cylinder volume')  # 2、創(chuàng)建參數(shù)對象
    parse.add_argument('-r', '--radius', default=2, type=int, metavar='', help='Radius of Cylinder')  # 3、往參數(shù)對象添加參數(shù)
    parse.add_argument('-H', '--height', default=4, type=int, metavar='', help='height of Cylinder')
    args = parse.parse_args()  # 4、解析參數(shù)對象獲得解析對象
    return args
def cal_vol(radius, height):
    vol = math.pi * pow(radius, 2) * height
    return vol
if __name__ == '__main__':
    args = parse_args()
    print(cal_vol(args.radius, args.height))  # 5、使用解析對象.參數(shù)獲取使用命令行參數(shù)

如下,對比3.2.2中-h顯示信息,去掉了參數(shù)名

在這里插入圖片描述

原因:
metavar在通過-h顯示 usage
說明中的參數(shù)名稱,對于必選參數(shù)默認就是參數(shù)名稱,對于可選參數(shù)默認是全大寫的參數(shù)名稱.。這里通過設(shè)置為空一律不顯示。

3.2.4 必選參數(shù)設(shè)置

import math
import argparse  # 1、導(dǎo)入argpase包
def parse_args():
    parse = argparse.ArgumentParser(description='Calculate cylinder volume')  # 2、創(chuàng)建參數(shù)對象
    parse.add_argument('-r', '--radius', default=2, type=int, metavar='', required=True, help='Radius of Cylinder')  # 3、往參數(shù)對象添加參數(shù)
    parse.add_argument('-H', '--height', default=4, type=int, metavar='', required=True, help='height of Cylinder')
    args = parse.parse_args()  # 4、解析參數(shù)對象獲得解析對象
    return args

def cal_vol(radius, height):
    vol = math.pi * pow(radius, 2) * height
    return vol
if __name__ == '__main__':
    args = parse_args()
    print(cal_vol(args.radius, args.height))  # 5、使用解析對象.參數(shù)獲取使用命令行參數(shù)

當(dāng)通過設(shè)置required=True后,無論參數(shù)是否是可選參數(shù),都必須輸入,如下示例:

在這里插入圖片描述

3.2.5 列表參數(shù)(多參數(shù))傳入設(shè)置

import math
import argparse
def parse_args():
    parse = argparse.ArgumentParser(description='Calculate cylinder volume')
    parse.add_argument('-n', '--num', type=int, nargs='+', metavar='', required=True, help='a string of nums')
    args = parse.parse_args()
    return args
if __name__ == '__main__':
    args = parse_args()
    print(args.num)
    for i in list(args.num):
        print(i)

argparse

3.2.6 互斥參數(shù)使用

import math
import argparse

def parse_args():
    parse = argparse.ArgumentParser(description='Calculate cylinder volume')
    parse.add_argument('-r', '--radius', default=2, type=int, metavar='', required=True, help='Radius of Cylinder')
    parse.add_argument('-H', '--height', default=4, type=int, metavar='', required=True, help='height of Cylinder')
    group = parse.add_mutually_exclusive_group()  # 1、在參數(shù)對象中添加互斥組
    group.add_argument('-b', '--brief', action='store_true', help='print brief message')  # 2、在互斥組中添加參數(shù)(store_true默認當(dāng)命令行未輸入?yún)?shù)則為False,否則為True)
    group.add_argument('-v', '--verbose', action='store_true', help='print verbose message')
    args = parse.parse_args()
    return args
def cal_vol(radius, height):
    vol = math.pi * pow(radius, 2) * height
    return vol
if __name__ == '__main__':
    args = parse_args()
    volume = cal_vol(args.radius, args.height)
    if args.brief:
        print(volume)
    elif args.verbose:
        print('Volume of Cylinder with radius %s and height %s is %s' % (args.radius,args.height,volume))
    else:
        print('Volume of Cylinder is %s' % (volume))

命令行中b和v只能輸入二者中的一個參數(shù)。

在這里插入圖片描述

3.2.7 默認參數(shù)設(shè)置

set_defaults()可以設(shè)置一些參數(shù)的默認值

import math
import argparse
def parse_args():
    parse = argparse.ArgumentParser(description='Calculate cylinder volume')
    parse.add_argument('-r', '--radius', default=2, type=int, metavar='', required=True, help='Radius of Cylinder')
    parse.set_defaults(height=4)
    args = parse.parse_args()
    return args

def cal_vol(radius, height):
    vol = math.pi * pow(radius, 2) * height
    return vol
if __name__ == '__main__':
    args = parse_args()
    print(cal_vol(args.radius, args.height))

在這里插入圖片描述

4. 參考文獻

原文

Python argparse命令行參數(shù)解析包的詳細教程

官方文檔

到此這篇關(guān)于argparse 模塊詳解的文章就介紹到這了,更多相關(guān)argparse 模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pip 安裝庫比較慢的解決方法(國內(nèi)鏡像)

    pip 安裝庫比較慢的解決方法(國內(nèi)鏡像)

    對于Python開發(fā)用戶來講,PIP安裝軟件包是家常便飯。但國外的源下載速度實在太慢,浪費時間。而且經(jīng)常出現(xiàn)下載后安裝出錯問題,所以把PIP安裝源替換成國內(nèi)鏡像,可以大幅提升下載速度,還可以提高安裝成功率
    2019-10-10
  • Python實現(xiàn)抓取百度搜索結(jié)果頁的網(wǎng)站標題信息

    Python實現(xiàn)抓取百度搜索結(jié)果頁的網(wǎng)站標題信息

    這篇文章主要介紹了Python實現(xiàn)抓取百度搜索結(jié)果頁的網(wǎng)站標題信息,本文使用BeautifulSoup來解析HTML,需要的朋友可以參考下
    2015-01-01
  • Python 虛擬環(huán)境venv詳解

    Python 虛擬環(huán)境venv詳解

    Python 虛擬環(huán)境主要是為不同 Python 項目創(chuàng)建一個隔離的環(huán)境,每個項目都可以擁有獨立的依賴包環(huán)境,而項目間的依賴包互不影響,對Python 虛擬環(huán)境venv相關(guān)知識感興趣的朋友一起看看吧
    2021-09-09
  • python如何實現(xiàn)反向迭代

    python如何實現(xiàn)反向迭代

    這篇文章主要為大家詳細介紹了python如何實現(xiàn)反向迭代,進行反向迭代,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 詳解python3百度指數(shù)抓取實例

    詳解python3百度指數(shù)抓取實例

    本篇文章主要介紹了python3百度指數(shù)抓取,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧。
    2016-12-12
  • GitHub 熱門:Python 算法大全,Star 超過 2 萬

    GitHub 熱門:Python 算法大全,Star 超過 2 萬

    4 月 27 日,GitHub 趨勢榜第 3 位是一個用 Python 編碼實現(xiàn)的算法庫,Star 數(shù)早已達到 26000+
    2019-04-04
  • Pytorch中DataLoader的使用方法詳解

    Pytorch中DataLoader的使用方法詳解

    在Pytorch中,torch.utils.data中的Dataset與DataLoader是處理數(shù)據(jù)集的兩個函數(shù),用來處理加載數(shù)據(jù)集,這篇文章主要介紹了Pytorch中DataLoader的使用方法,需要的朋友可以參考下
    2022-09-09
  • numpy中數(shù)組拼接、數(shù)組合并方法總結(jié)(append(),?concatenate,?hstack,?vstack,?column_stack,?row_stack,?np.r_,?np.c_等)

    numpy中數(shù)組拼接、數(shù)組合并方法總結(jié)(append(),?concatenate,?hstack,?vstack

    numpy庫是一個高效處理多維數(shù)組的工具,可以在進行邊寫的數(shù)組計算上進行一系列的操作,下面這篇文章主要給大家介紹了關(guān)于numpy中數(shù)組拼接、數(shù)組合并方法(append(),?concatenate,?hstack,?vstack,?column_stack,?row_stack,?np.r_,?np.c_等)的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • 如何使用Tkinter進行窗口的管理與設(shè)置

    如何使用Tkinter進行窗口的管理與設(shè)置

    Tkinter是Python的標準GUI庫,它實際是建立在Tk技術(shù)上的。在大多數(shù)Unix平臺以及Windows系統(tǒng)上都可用
    2021-06-06
  • 淺談python的輸入輸出,注釋,基本數(shù)據(jù)類型

    淺談python的輸入輸出,注釋,基本數(shù)據(jù)類型

    這篇文章主要介紹了python的輸入輸出,注釋,基本數(shù)據(jù)類型,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04

最新評論