python argparse詳解

來源:互聯網
上載者:User

標籤:image   表示   選擇性參數   png   string類   ntp   src   輸出   報錯   

1.argparse模組作用
用於解析命令列參數

2.位置參數和選擇性參數
運行以下代碼:

import argparseparser = argparse.ArgumentParser()args = parser.parse_args()

運行結果:

參數為-h或--help時,parser.parse_args()會輸出命令列的位置參數position arguments和選擇性參數optional arguments
位置參數:按照參數的順序解析,參數必填
選擇性參數:以-或--開頭,參數非必填

位置參數,選擇性參數樣本如下:

import argparseparser = argparse.ArgumentParser()parser.add_argument("num", type=int, help="position")parser.add_argument("--mode", "-m", type=int, help="optional")args = parser.parse_args()

運行結果:

num為一個位置參數,type表示參數的類型,參數預設都是string類型的,help表示參數的描述
--mode,以--開頭,為一個選擇性參數,可以有多個別名(--mode,-m)
選擇性參數,不是必填的,一般用來作條件分支,如下所示:

import argparseparser = argparse.ArgumentParser()parser.add_argument("num", type=int, help="position")parser.add_argument("--mode", "-m", type=int, help="optional")args = parser.parse_args()result = 0if args.mode == 1:    result = args.num ** 2else:    result = args.num * 2print(result)

運行結果:

當mode=1時,計算num的平方,否則,計算num*2

指定參數的範圍,choice

import argparseparser = argparse.ArgumentParser()parser.add_argument("num", type=int, choices=[5, 6, 7], help="position")parser.add_argument("--mode", "-m", action="store_true", help="optional")args = parser.parse_args()result = 0if args.mode:    result = args.num ** 2else:    result = args.num * 2print(result)

運行結果:

3.選擇性參數
位置參數沒有太多要講的,必填,類型必須和定義的一致(預設為string),否則會報錯。
選擇性參數有以下幾種action
1)store_true
有參數時為true,沒有為false,有參數時不能指定參數的值

import argparseparser = argparse.ArgumentParser()parser.add_argument("num", type=int, help="position")parser.add_argument("--mode", "-m", action="store_true", help="optional")args = parser.parse_args()result = 0if args.mode:    result = args.num ** 2else:    result = args.num * 2print(result)

運行結果:

2)count
數值,-m表示1,-mm或-m -m表示2,以此類推

import argparseparser = argparse.ArgumentParser()parser.add_argument("num", type=int, choices=[5, 6, 7], help="position")parser.add_argument("--mode", "-m", action="count", help="optional")args = parser.parse_args()result = 0if args.mode == 1:    result = args.num ** 2elif args.mode == 2:    result = args.num * 2else:    result = args.numprint(result)

不加參數,表示None,可以設定預設count,則-m表示預設值+1

import argparseparser = argparse.ArgumentParser()parser.add_argument("num", type=int, help="position")parser.add_argument("--mode", "-m", action="count", default=1, help="optional")args = parser.parse_args()result = 0if args.mode == 1:    result = args.num ** 2elif args.mode == 2:    result = args.num * 2else:    result = args.numprint(result)

運行結果:

python argparse詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.