<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] ## 模塊說明 ### 1、定義: argparse是python標準庫里面用來處理命令行參數的庫,用于代替已經過時的optparse模塊 ### 2、位置參數和選項參數: **位置參數**就是程序根據該參數出現的位置來確定的,如:`[root@openstack_1?/]#?ls?root`?其中`root`是位置參數 **選項參數**是應用程序已經提前定義好的參數,不是隨意指定的,如:`[root@openstack_1?/]#?ls?-l `?,其中`-l `就是ls命令里的一個選項參數 ### 3、使用步驟: (1)import argparse ? ?首先導入模塊 (2)parser = argparse.ArgumentParser() ? ?創建一個解析對象 (3)parser.add_argument() ? ?向該對象中添加你要關注的命令行參數和選項 (4)parser.parse_args() ? ?進行解析 ### 4、argparse.ArgumentParser()方法參數: 一般我們只選擇用description這一個選項 * prog=None 程序名 * **description=None** help時顯示的開始文字 * epilog=None help時顯示的結尾文字 * parents=[] 若與其他參數的一些內容一樣,可以繼承 * formatter\_class=argparse.HelpFormatter 自定義幫助信息的格式 * prefix\_chars='-' 命令的前綴,默認是‘-’ * fromfile\_prefix\_chars=None 命令行參數從文件中讀取 * argument\_default=None 設置一個全局的選項缺省值,一般每個選項單獨設置 * conflict\_handler='error' 定義兩個add\_argument中添加的選項名字發生沖突時怎么處理,默認處理是拋出異常 * add\_help=True 是否增加-h/--help選項,默認是True) ### 5、add_argument()方法參數用法: ArgumentParser.add\_argument(nameor flags...\[, action\]\[, nargs\]\[, const\]\[, default\]\[, type\]\[, choices\]\[, required\]\[, help\]\[, metavar\]\[, dest\]) * **name or flags**?:參數有兩種,可選參數和位置參數 * **action:** 解析到一個命令行參數時該如何處理.action有一組固定值可選.但一般默認就行 | action的值 | 功能 | | --- | --- | | store | 默認,將參數值保存在options對象里. | | store_const| 存儲值const指定的常量中 | | store_false| 布爾選項,賦值False. | | store_true| 布爾選項,賦值True | | count| 統計參數出現的次數| | append| 將此選項的參數存為列表 | | append_const| 存為列表,會根據const關鍵參數添加 | * **nargs:**?參數的數量 * **const**?:保存一個常量 * **default**?:默認值 * **type**?:參數類型,默認為str * **choices** :設置參數值的范圍,如果choices中的類型不是字符串,記得指定type * **required**?:該選項是否必選,默認為True * **metaver**:幫助信息中顯示的參數名稱 * **dest**?:參數名 ### 6、簡單使用 ~~~ import argparse parse=argparse.ArgumentParser(description='我是幫助信息') parse.add_argument('-f') parse.add_argument('-q') args=parse.parse_args() #執行-h顯示幫助 >test.py -h usage: test.py [-h] [-f F] [-q Q] 我是幫助信息 optional arguments: -h, --help show this help message and exit -f F -q Q ~~~ ## 重要參數舉例 ### name or flags... 必選參數,有可選參數和位置參數兩種。可選參數和位置參數不能同時存在 `-f`和`--file` 這種是可選參數中的短參數和長參數,可以有多個 `filename` 這種是位置參數,只能有一個,且必傳 若沒有指定dest,優先使用長參數做屬性名 1. 可選參數案例: ~~~ import argparse parse=argparse.ArgumentParser() parse.add_argument('-f','--file') args=parse.parse_args() print('args:',args) print('args.file:',args.file) #執行結果 >test.py #不傳參數也不報錯 args: Namespace(file=None) args.file: None >test.py -f a.txt #用最后一個參數file做屬性名 args: Namespace(file='a.txt') args.file: a.txt ~~~ 2. 位置參數案例 ~~~py import argparse parse=argparse.ArgumentParser() parse.add_argument('file') args=parse.parse_args() print('args:',args) print('args.file:',args.file) #執行結果 >test.py #不帶位置參數就報錯 usage: test.py [-h] file test.py: error: the following arguments are required: file >test.py a.txt #位置參數直接寫,不需要寫參數名 args: Namespace(file='a.txt') args.file: a.txt ~~~ ### dest屬性參數 設置這個選項的value解析出來后放到哪個屬性中 ~~~ import argparse parse=argparse.ArgumentParser() parse.add_argument("-f",'--file',dest='filename') args=parse.parse_args() print('args:',args) #執行結果: >test.py -f a.txt #和上例子對比,可以發現不同 args: Namespace(filename='a.txt') ~~~ ### action動作參數 action 表示值賦予鍵的方式,默認為store,存儲到對象中 * store_const,值存放在const中: ~~~py >>> parser = argparse.ArgumentParser() >>> parser.add_argument('--foo', action='store_const', const=42) >>> parser.parse_args('--foo'.split()) Namespace(foo=42) ~~~ * store_true和store_false,值存為True或False ``` >>> parser = argparse.ArgumentParser() >>> parser.add_argument('--foo', action='store_true') >>> parser.add_argument('--bar', action='store_false') >>> parser.add_argument('--baz', action='store_false') >>> parser.parse_args('--foo --bar'.split()) Namespace(bar=False, baz=True, foo=True) ``` * append:存為列表 ``` >>> parser = argparse.ArgumentParser() >>> parser.add_argument('--foo', action='append') >>> parser.parse_args('--foo 1 --foo 2'.split()) Namespace(foo=['1', '2']) ``` * append_const:存為列表,會根據const關鍵參數進行添加: ``` >>> parser = argparse.ArgumentParser() >>> parser.add_argument('--str', dest='types', action='append_const', const=str) >>> parser.add_argument('--int', dest='types', action='append_const', const=int) >>> parser.parse_args('--str --int'.split()) Namespace(types=[<type 'str'>, <type 'int'>]) ``` * count:統計參數出現的次數 ``` >>> parser = argparse.ArgumentParser() >>> parser.add_argument('--verbose', '-v', action='count') >>> parser.parse_args('-vvv'.split()) Namespace(verbose=3) ``` * version:版本 ``` >>> import argparse >>> parser = argparse.ArgumentParser(prog='PROG') >>> parser.add_argument('--version', action='version', version='%(prog)s 2.0') >>> parser.parse_args(['--version']) PROG 2.0 ``` ### required和type參數 通常-f這樣的選項是可選的,但是如果required=True那么就是必須的了,不輸入就會報錯提醒 ~~~ import argparse parse=argparse.ArgumentParser() parse.add_argument("-f", required=True,type=int) args=parse.parse_args() print('args:',args) 執行結果: >test.py #不帶參數報錯 usage: test.py [-h] -f F test.py: error: the following arguments are required: -f >test.py -f a.txt #參數類型錯誤報錯 usage: test.py [-h] -f F test.py: error: argument -f: invalid int value: 'a.txt' >test.py -f 123 #正常的參數類型不報錯 args: Namespace(f=123) ~~~ ### choices范圍參數 可設置參數的范圍,如果choice中的類型不是字符串,要指定type 表示該參數能接受的值只能來自某幾個值候選值中,除此之外會報錯,用choice參數即可 ~~~ import argparse parse=argparse.ArgumentParser() parse.add_argument("-f",choices=['aa','bb']) args=parse.parse_args() print('args:',args) #z執行結果: >test.py -f qq usage: test.py [-h] [-f {aa,bb}] test.py: error: argument -f: invalid choice: 'qq' (choose from 'aa', 'bb') >test.py -f aa args: Namespace(f='aa') ~~~ ### nargs參數 指定這個參數后面的value有多少個,默認為1 ~~~ import argparse parse=argparse.ArgumentParser() parse.add_argument("-f",nargs=2) args=parse.parse_args() print('args:',args) #執行結果: >test.py -f a.txt b.txt args: Namespace(f=['a.txt', 'b.txt']) ~~~ nargs還可以正則表達式 '*'表示如果有該位置參數輸入的話,之后所有的輸入都將作為該位置參數的值; ‘+’表示讀取至少1個該位置參數。'?'表示該位置參數要么沒有,要么就只要一個。(PS:跟正則表達式的符號用途一致。)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看