日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python中argparse模块

發布時間:2025/1/21 python 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中argparse模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考官方文檔https://docs.python.org/zh-cn/3/library/argparse.html#nargs

python中參數解釋器,使用流程:

import argparse parser = argparse.ArgumentParser() ## 新建參數解釋器對象 parser.add_argument('-v') ## 添加參數 args = parser.parse_args(['-v', '3'])### 參數賦值,也可以通過終端賦值 ''' python test.py -v '''

1. argparse.ArgumentParser()

class argparse.ArgumentParser(prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=argparse.HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True, allow_abbrev=True, exit_on_error=True)
參數很多,一般都選默認。有時會設置usage–描述程序的用法.

2. parser.add_argument()

ArgumentParser.add_argument(name or flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])

定義單個的命令行參數應當如何解析。每個形參都在下面有它自己更多的描述,長話短說有:

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

action - 當參數在命令行中出現時使用的動作基本類型

nargs - 命令行參數應當消耗的數目

const - 被一些 action 和 nargs 選擇所需求的常數

default - 當參數未在命令行中出現并且也不存在于命名空間對象時所產生的值。默認值

type - 命令行參數應當被轉換成的類型

choices - 可用的參數的容器

required - 此命令行選項是否可省略 (僅選項可用)。

help - 一個此選項作用的簡單描述。

metavar - 在使用方法消息中使用的參數值示例。

dest - 被添加到 parse_args() 所返回對象上的屬性名

2.1 name or flags 參數名稱

參數可以是位置參數,也可以是可選參數。parser.add_argument()調用時,根據名稱前有無中劃線‘-’,確定參數是位置參數還是可選參數

  • 可選參數
    parser.add_argument('-f', '--foo')
  • 位置參數可以這么創建:
    parser.add_argument('bar')
    當 parse_args() 被調用,選項會以 - 前綴識別,剩下的參數則會被假定為位置參數。位置參數必須被賦值,可選參數可根據情況不賦值。

2.2 action 動作類型

可選值為: store, store_const,store_true, store_false

  • store 默認值,設置的值都會保存
  • store_const存儲被 const 命名參數指定的值

    foo未設置值,但是在參數列表中加了--foo,則foo=42,如果調用的時候,不傳參數列表,foo=None。

這點與parser.add_argument('--foo', default=42)不同,此時,傳個空的參數列表 給foo,foo的值為42。

如果傳參數卻不賦值,會報錯

  • store_true 和store_false 是store_const的特殊值,分別作為存儲True 和 False

    foo的action=store_true,傳參列表中加了--foo,則foo=True
    bar的action=store_false,傳參列表中加了--bar,則bar=False
    baz的action=store_false,傳參列表中沒加了--baz,則bar取與他存儲值相反的值False

2.3 nargs 參數個數

  • N - 表示前面的參數接收N個參數
  • ? - 接收0或1個參數
  • * - 接收0或多個參數
  • + - 接收1或多個參數,未傳參數時,報錯

2.3.1 ?配合default和const使用

nargs=?的變量,賦值的參數可以有0或1個

2.3.1 *

2.4 type 類型

type 關鍵字允許執行任何必要的類型檢查和類型轉換
foo的類型是int,bar的類型是str.兩個參數傳的值相同,但因為type類型不同,收到的參數值的類型不同

import argparse parser = argparse.ArgumentParser() parser.add_argument('--foo', type=int) parser.add_argument('--bar', type=str) args = parser.parse_args(['--foo','10','--bar','10']) print(args) >>>Namespace(bar='10', foo=10)

2.5 choice

從choice可取值的范圍內設置一個值,否則會報錯。

配合type,檢查參數類型。

任何內部的 - 字符都將被轉換為 _ 字符以確保字符串是有效的屬性名稱

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的python中argparse模块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。