一、入門級介紹
argparse.argumentparser()是Python語言中常用的命令行參數解析庫,可以幫助我們輕鬆地從命令行讀取參數,並對其進行解析。在第一次使用該庫時,我們可以先簡單了解其基礎結構和使用方法。
argparse.argumentparser()的使用非常簡單,我們只需要按照以下步驟來使用即可:
import argparse parser = argparse.ArgumentParser() parser.add_argument("echo") args = parser.parse_args() print(args.echo)
在上述例子中,「echo」是我們需要從命令行讀取的參數名稱。通過add_argument()方法,我們擴展了一個命令行參數,parser.parse_args()用來解析這個參數,並將結果存儲到args中。最後,我們通過print()打印出了這個參數的值。
下面我們將對argparse.argumentparser()做進一步的介紹,涵蓋更廣闊的範圍。
二、常用參數類型
為了讓程序更加靈活,我們需要定義一些支持的參數類型。下面我們將介紹一些常用的參數類型,方便編寫更加完整的參數解析腳本。
1. 位置參數
位置參數是指在命令行中不帶任何選項或標誌(沒有方向的單詞)的參數。這類參數可以用「add_argument()」方法來添加。在下面的示例中,我們定義了兩個位置參數:
parser.add_argument("arg1") parser.add_argument("arg2") args = parser.parse_args()
當我們在命令行中輸入下面的命令時,程序將解析出arg1和arg2:
$ python myprogram.py foo bar
2. 可選選項參數
可選選項參數只在命令行中有一個簡短的標記或名字,既可以帶參數傳入,也可以不帶參數傳入。在argparse中,我們可以通過「add_argument()」方法來定義可選選項參數。
parser.add_argument("-v", "--verbosity", help="increase output verbosity") args = parser.parse_args()
當我們在命令行中這樣輸入時:
$ python myprogram.py -v
程序將解析verbose的值是True,我們也可以通過下面的方式指定參數值為2:
$ python myprogram.py -v 2
3. 互斥選項參數
在有些情況下,只有一種選項可以被選擇。例如,在下面的示例中,如果指定了「–foo」,就不能再指定「–bar」,同時反之亦然。在argparse中,我們使用「add_mutually_exclusive_group()」來實現這種互斥關係。
group = parser.add_mutually_exclusive_group() group.add_argument("-f", "--foo", action="store_true") group.add_argument("-b", "--bar", action="store_true") args = parser.parse_args()
在上面的示例中,我們用「add_mutually_exclusive_group()」創建了一個新的參數組,並向其添加兩個互斥的參數。當我們在命令行中同時指定「–foo」和「–bar」時,將會引發錯誤。
三、常用參數介紹
在深入了解argparse後,我們將介紹一些常用的參數,以增加代碼的靈活性和可讀性。
1. action參數
action 參數用來描述當參數存在時,將被執行的動作。例如,當 argparse在命令行中找到指定的標誌參數時必須採取的操作,一個常用的參數就是「store_true」,它會將指定的標誌參數變成True。
parser.add_argument('--foo', action='store_true') parser.add_argument('--bar', action='store_false') parser.add_argument('--baz', action='store_false')
在上面的示例中,「–foo」有沒有指定都行,如果指定了就將其設置為True。而「–bar」和「–baz」則相反。
2. dest參數
dest 參數指定將一個值存儲到該屬性的名稱。有時我們希望命令行參數的名稱與腳本變量名稱不同,使用 dest 可以解決這個問題。
parser.add_argument('--long-name', dest='short_name') args = parser.parse_args()
在上面的示例中,「–long-name」將被解析到「short_name」變量中,這樣我們可以使用「args.short_name」來訪問這個變量。
3. default參數
default 參數用於指定在未指定命令行參數時要使用的值。例如,我們可以指定一個默認值為42:
parser.add_argument('--foo', default='42') args = parser.parse_args()
在上面的示例中,如果我們在命令行沒有指定「–foo」這個參數,那麼 args.foo 的值就會是「42」。這裡的默認值可以是任何有效的類型,包括列表、字典和其他可迭代對象。
4. type參數
type 參數用於指定命令行參數值的類型。默認情況下,argparse 將字符串解析為字符串。如果指定了類型,它將嘗試將 args 參數轉換為指定的類型,並在失敗時引發錯誤。
parser.add_argument("--count", type=int, default=1)
在上面的示例中,我們將「–count」參數的類型指定為整數,如果用戶沒有在命令行中指定「–count」的值,args.count 的默認值為 1。如果指定了值,則在轉換為int類型時進行驗證。
5. choices參數
choices 參數可以為指定的選項限制值集合。如果用戶嘗試為參數提供不屬於集合中的值,則 argparse 將引發錯誤。
parser.add_argument('--size', choices=['S', 'M', 'L'], default='M') args = parser.parse_args()
在上面的示例中,用戶只能指定 S、M 或 L 中的一個值,否則 argparse 將引發錯誤。
總結
本文對argparse.argumentparser()做了詳細介紹,涉及了基礎使用方法、常用參數類型和常用參數介紹等多方面。argparse.argumentparser()是一個非常強大的Python命令行參數解析庫,可以大大簡化從命令行讀取參數並對其進行解析的過程。我們希望這篇文章能夠幫助您更好地使用argparse.argumentparser(),編寫出更加完善的Python腳本程序。
原創文章,作者:EMKCP,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/351537.html