问题:需要解析一些可以按任何顺序排列的特定参数,非可选参数:-h -d -src -dst
我是 Python 的新手,并且已经查看了诸如 getopt 和 argparse 之类的替代方案,但无法获得工作示例,因此按如下方式进行了自定义;
argv=sys.argv[1:]
args=[]
for idx, arg in enumerate(argv):
# if is arg
if arg.startswith("-"):
# find arg match
for i in ("-h","-d:","-src:","-dst:"):
# requires var
if i == arg + ':' and idx < len(argv)-1:
if not argv[idx+1].startswith("-"):
args.append((arg,argv[idx+1]))
break
# no var
elif i == arg:
args.append((arg,""))
break
else:
continue
# may contain duplicates
print(args)
# no dupes
print(set(args))
任何人都可以提出改进和/或更好的例子来实现问题目标吗?