<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] ## 前言說明 要自己定制程序的參數選項控制, 可以使用 Python 自帶的 OptParse 模塊。 ~~~ import optparse ~~~ > 也可以直接解析 sys.argv 里的參數,但是過于麻煩。 `optparse` 現在不再更新了,它有一個缺陷是如果不輸入參數就不校驗,所以推薦更新版本 `argparse`. ### 說明 OptParse 支持一般性 GNU 的選項方法,包括: * 無參選項, `-v` * 有參選項, `-p value, –para=value` * 值參一體, `-pvalue` (不支持長參數) * 合并選項, `-abc, -abcp value` (最后一個可以是有參, 其余均無參) 解析時,`-` 和 `--` 的區別: * `-` 就看后面的值, 要是無參的, 那繼續讀下一個; 要是有參的,就把參數讀進來(分隔或一體). * `--` 直接讀后面的值; ### 簡單例子: **代碼** ~~~ from optparse import OptionParser parser = OptionParser() parser.add_option("-f", "--file", dest="filename", help = "write report to FILE", metavar = "FILE") parser.add_option("-q", "--quiet",action = "store_false", dest = "verbose", default = True, help = "don't print status messages to stdout") options, args = parser.parse_args() print(options) print(args) ~~~ **生成的使用和幫助信息:** ``` D:\data\my_python\常用模塊>test.py -h Usage: test.py [options] Options: -h, --help show this help message and exit -f FILE, --file=FILE write report to FILE -q, --quiet don't print status messages to stdout ``` ## **具體用法:** ### 一: 創建Optionparser實例 ``` from optparse import OptionParser parser= OptionParser() ``` ### 二:命令行選項 ``` parser.add_option("-f", "--file", dest="filename", help = "write report to FILE", metavar = "FILE") #每個選項也可以有一個短選項和一個長選項,例如-q,--quite ``` 選項操作: 1. action: 指定Optionparser解析到一個命令行參數時該如何處理.action有一組固定值可選. | action的值 | 功能 | | --- | --- | | store | 默認,表示將命令行參數值保存在options對象里. | | store_false| 布爾選項,如果出現了對應的選項,例如-q,則賦值False. | | store_true| 布爾選項,賦值True | | store_const| 存儲恒定值 | | callback| :調用指定的函數| | count| 將計數器遞增1 | | append| 將此選項的參數附加到列表 | 2. dest: 可以決定解析后,取值時的屬性名, 不指定時就是選項不加-的字符串. 3. type: 參數的類型,默認”string”,可以為”int”,“float” 4. default: 缺省值. 沒有設置缺省值的為None. 5.help: 選項中有 -h 時打印的 help 信息. 6. metavar: 表示顯示到 help 中選項的默認值; ### 三:解析參數 使用`options, args = parser.parse_args() `解析參數 **案例:** ``` from optparse import OptionParser parser = OptionParser() parser.add_option("-f", "--file", dest="filename", help = "write report to FILE", metavar = "FILE") options, args = parser.parse_args() print(options) print(args) # options,一個包含所有選項的值的對象. # args,解析選項后剩余的位置參數列表. #執行結果 >test.py -f aa.txt {'filename': 'aa.txt'} [] >test.py -f aa.txt cc dd {'filename': 'aa.txt'} ['cc', 'dd'] ``` ### 四: optparse處理錯誤 錯誤分為程序錯誤,用戶錯誤和程序定義的錯誤 * 程序錯誤: 通常是對OptionParser.add_option()的錯誤調用.例如:無效的選項字符串,未知的選項屬性,缺少選項屬性等. 這些通常會引發異常,觸發optparse.OptionError或者TypeError,并導致程序崩潰. * 用戶錯誤: Optparse可以自動檢測一些常見的用戶錯誤,例如輸入了錯誤的參數類型,參數輸入缺漏. * 程序定義的錯誤 可以調用Optionparser.error()來通知應用程序定義的錯誤條件. 案例: 定義了一個-t參數,只能輸入整數,當輸入錯誤的選項和不輸入選項是,都會有提示: ~~~ from optparse import OptionParser parser = OptionParser() parser.add_option('-t',dest='time', type='int',help='只能輸入整數') options, args = parser.parse_args() #執行結果 >test.py -t #選項未輸入 Usage: test.py [options] test.py: error: -t option requires 1 argument >test.py -t 1.1 #選項值錯誤 Usage: test.py [options] test.py: error: option -t: invalid integer value: '1.1' ~~~
                  <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>

                              哎呀哎呀视频在线观看