我的项目处理三个参数如何像我这样处理我的代码
def main(argv):
try:
opts, args = getopt.getopt(argv,"d:f:w:",['--i','--u','--v'])
print opts
print args
except getopt.GetoptError:
print 'Option Error'
if __name__ == '__main__':
try:
main(sys.argv[1:])
except Exception, e:
print str(e)
我将运行此代码我将获得此ouptut ./code.py -d --i -f --u package1 package2 输出
[('-d', '--i'), ('-f', '--u')]
['package1', 'package2']
但我希望像这种格式的输出如何修改, ./ code.py -d --i package1 -f --u package2 ...
[('-d', '--i',), ('-f', '--u')]
['package1', 'package2']
答案 0 :(得分:2)
我认为您误解了getopt的工作原理。
参数是getopt是getopt.getopt(args, options[, long_options])
。
这意味着在你的情况下
-d equals --i
-f equals --u
-w equals --v
对于长期选择,一个好的做法是给他们长名。例如。: -d应该等于--destination。
有关详细信息,请参阅http://docs.python.org/2/library/getopt.html#getopt.getopt。
因此,您的案例中正确的CLI命令应该是
./code.py -d package1 -f package2
OR
./code.py -d package1 -f package2
或者甚至混合
./code.py --i package1 -f package2
其中第一个参数的 opt 为'd',第一个参数的 arg 为'package1'。