Ich habe dieses Programm geschrieben, um eine Liste von Optionen mit dem Flag --list zur Verfügung zu stellen. Also, ich möchte --list verwenden, um alle Optionen zur Verfügung zu stellen, während ich --list --ex verwende, möchte ich nur einen Teil der Liste der Optionen angeben. HierHinzufügen von Flags mit argparse, um eine Liste von Optionen zur Verfügung zu stellen
ist das Programm -
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
Also, wenn ich das tue, --list --ex ich alle Optionen zu erhalten, und die externen Optionen. Während ich --list --ex gebe, möchte ich nur die externen Optionen.
Vielen Dank im Voraus für jede Hilfe.