gpt4 book ai didi

python - getopt 程序中的 3 个不同的 arg 句柄

转载 作者:行者123 更新时间:2023-12-01 05:45:23 24 4
gpt4 key购买 nike

我的项目正在处理三个参数,如何处理我的代码,如下

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)

我将运行此代码,我将得到此输出 ./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']

最佳答案

我认为您误解了 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

或者

./code.py -d package1 -f package2

或者甚至混合

./code.py --i package1 -f package2

其中第一个参数的 opt 将为“d”,第一个参数的 arg 将为“package1”。

关于python - getopt 程序中的 3 个不同的 arg 句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16294425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com