最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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在命令行多次輸入 這樣不易多次調試及修改運行,如下就是一個示例:
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的主要步驟:

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

如下是一個簡單的示例:

import math
import argparse  # 1、導入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ù)輸入默認按順序賦值,順序不同會造成結果不同

在這里插入圖片描述

在這里插入圖片描述

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

在這里插入圖片描述

3.2 argparse進階示例

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

在這里插入圖片描述

參數(shù)解釋如下:

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

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

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

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

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

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

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

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

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

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

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

3.2.1 可選參數(shù)設置

import math
import argparse  # 1、導入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ù),如果未輸入,則使用default默認值(若未設置default,則會默認賦值None),如下示例:

在這里插入圖片描述

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

import math
import argparse  # 1、導入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ù)輸入:

在這里插入圖片描述

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

在這里插入圖片描述

在這里插入圖片描述

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

import math
import argparse  # 1、導入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ù)名稱.。這里通過設置為空一律不顯示。

3.2.4 必選參數(shù)設置

import math
import argparse  # 1、導入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ù)

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

在這里插入圖片描述

3.2.5 列表參數(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默認當命令行未輸入?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ù)設置

set_defaults()可以設置一些參數(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ù)解析包的詳細教程

官方文檔

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

相關文章

最新評論

祁门县| 通江县| 银川市| 永州市| 临漳县| 新昌县| 清水县| 枞阳县| 丹寨县| 吉木乃县| 章丘市| 涞源县| 冀州市| 辽中县| 六安市| 宜都市| 交城县| 兴业县| 柘荣县| 永仁县| 登封市| 毕节市| 怀远县| 云和县| 永嘉县| 奈曼旗| 株洲县| 遵义县| 石家庄市| 璧山县| 宾川县| 西乌珠穆沁旗| 襄城县| 凤翔县| 西丰县| 汝阳县| 乌什县| 乌苏市| 洪湖市| 余江县| 浦东新区|