在Python腳本中,經常需要從命令行獲得參數,例如輸入文件名、輸出文件名、運行模式等。Python內置的argparse模塊可以輕鬆地處理命令行參數。argparse支持必需參數和可選參數,本文將詳細探討argparse模塊中可選參數的用法及示例。
一、基礎用法
可選參數是一個可選的參數,可以在命令行中出現也可以不出現。在argparse中,使用add_argument()方法添加可選參數。例如:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-v", "--verbose", help="increase output verbosity", action="store_true")
args = parser.parse_args()
if args.verbose:
print("verbosity turned on")
在上面的示例中,使用add_argument()方法添加了一個可選參數-v和–verbose。help參數是這個可選參數的幫助信息。action參數指定了當這個可選參數出現時需要執行的操作。在這個示例中,通過action=”store_true”來設定,如果在命令行中出現了-v或–verbose,則args.verbose這個變數會被置為True。
二、多種參數類型
argparse支持多種可選參數類型,例如字元串、整數、浮點數、布爾值等。下面是一個示例,演示了如何添加多種不同類型的可選參數:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-f", "--file", help="input file name")
parser.add_argument("-n", "--number", help="an integer", type=int)
parser.add_argument("-d", "--debug", help="enable debug mode", action="store_true")
parser.add_argument("-r", "--rate", help="a float number", type=float)
args = parser.parse_args()
print(args.file)
print(args.number)
print(args.debug)
print(args.rate)
在這個示例中,添加了四個不同類型的可選參數。其中,-f和–file是字元串類型的參數,-n和–number是整數類型的參數,-d和–debug是布爾類型的參數,-r和–rate是浮點數類型的參數。
三、參數默認值
在命令行中如果沒有給出可選參數的值,則argparse將用默認值來設置該參數。可以通過default參數指定參數的默認值,例如:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-f", "--file", help="input file name", default="default.dat")
parser.add_argument("-n", "--number", help="an integer", type=int, default=20)
args = parser.parse_args()
print(args.file)
print(args.number)
在這個示例中,-f和–file的默認值為”default.dat”,-n和–number的默認值為20。
四、參數組
有時候需要將多個可選參數分組顯示,在argparse中可以使用add_argument_group()方法創建參數組來達到這個目的。下面是一個示例:
import argparse
parser = argparse.ArgumentParser()
group1 = parser.add_argument_group("group1")
group1.add_argument("-f", "--file", help="input file name")
group1.add_argument("--format", help="output format")
group2 = parser.add_argument_group("group2")
group2.add_argument("-w", "--width", help="image width")
group2.add_argument("-h", "--height", help="image height")
args = parser.parse_args()
print(args.file)
print(args.format)
print(args.width)
print(args.height)
在這個示例中,創建了兩個參數組group1和group2,將參數分為兩組。程序使用時,可以通過分組來更加清晰地顯示參數。
五、參數別名
有時候需要對命令行參數提供多個不同的選項名稱,這可以通過aliases參數來實現。例如:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("-b", "--bar", help="bar help")
parser.add_argument("--baz", help="baz help", aliases=["fizz", "buzz"])
args = parser.parse_args()
print(args.bar)
print(args.baz)
在這個示例中,”–baz”這個參數有3個不同的選項名稱,分別是”–baz”、”–fizz”和”–buzz”。可以在命令行輸入任何一個選項名稱都會被正確解析。
六、參數互斥
有時候多個可選參數之間是互斥的,即同時只能存在一個參數。在argparse中,使用add_mutually_exclusive_group()方法創建互斥的參數組。例如:
import argparse
parser = argparse.ArgumentParser()
group = parser.add_mutually_exclusive_group()
group.add_argument("-v", "--verbose", help="increase verbosity", action="store_true")
group.add_argument("-q", "--quiet", help="decrease verbosity", action="store_true")
args = parser.parse_args()
if args.verbose:
print("verbosity turned on")
if args.quiet:
print("verbosity turned off")
在這個示例中,-v和–verbose和-q和–quiet是互斥的,同時只能存在其中之一。因此,使用了add_mutually_exclusive_group()方法創建了一個互斥的參數組group。
七、小結
本文詳細介紹了argparse模塊中可選參數的用法及示例,包括基礎用法、多種參數類型、參數默認值、參數組、參數別名和參數互斥。argparse模塊是Python的一個重要工具,在編寫命令行程序時經常使用。掌握這些用法將有助於編寫更加複雜和實用的命令行程序。
原創文章,作者:MAOU,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/143181.html