问题:需要分析这可能是任何顺序的一些具体参数,非可选:-h -d -src -dst的Python 2.6 - 解析参数
是新来的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))
任何人都可以提出改进和/或更好的例子来实现问题的目标?
你可以看看这个http://www.alexonlinux.com/pythons-optparse-for-human-beings – avasal
我认为值得一提的是,你所追求的战略也是可敬的。一个改进可能是在接收到无法识别的参数(不是以“ - ”开头)或选项(可以)时抱怨。 – dubiousjim
@avasal这是一个伟大的阅读,确实帮了很多,谢谢! – koola