問題:需要分析這可能是任何順序的一些具體參數,非可選:-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