我已經編寫了這個程序來提供使用標誌--list的選項列表。所以,我想用--list提供所有選項,而當我使用--list --ex時,我只想提供選項列表的一部分。使用argparse添加標誌來提供選項列表
這裏是節目 -
import argparse
import sys
options = {
'external': {
},
'internal': {
}
}
def print_list(value):
l1 = []
l2 = []
for k, v in options.iteritems():
if k == "external":
for opt, val in options["external"].iteritems():
l1.append(opt)
elif k == "internal":
for opt,val in options["internal"].iteritems():
l2.append(opt)
if value == "external":
return l1
elif value == "internal":
return l2
elif value == "all":
return l1 + l2
parser = argparse.ArgumentParser(
description="Testing argparse"
)
parser.add_argument("--list", action = "store_true")
parser.add_argument("--ex", action = "store_true")
parser.add_argument("--in", action = "store_true")
args = parser.parse_args(sys.argv[1:])
if args.list:
val = print_list("all")
for items in val:
print items
if not args.list and args.ex:
parser.error("You need to provide list option")
if args.ex:
val = print_list("external")
for items in val:
print items
所以,當我這樣做,--list --ex我得到的所有選項,以及外部選。而當我輸入--list --ex時,我只想要外部選項。
在此先感謝您的幫助。