为了账号安全,请及时绑定邮箱和手机立即绑定

python getopt 抛出 GetoptError 选项 --mode 不能有参数

python getopt 抛出 GetoptError 选项 --mode 不能有参数

一只甜甜圈 2021-10-10 16:07:43
当我指定一个命令行选项时,GetOpt 似乎不起作用,抛出异常,这个名为 o.py 的文件:import getoptimport sysopts,args = getopt.getopt(sys.argv[1:], "m:p:", ['mode', 'perf'])for opt_name,opt_value in opts:    if opt_name in ('--mode'):        print opt_name        continue    if opt_name in ('--perf'):        print opt_name        continue然后我在以下情况下收到运行时异常:python o.py --mode=aTraceback (most recent call last):File "o.py", line 3, in <module>    opts,args = getopt.getopt(sys.argv[1:], "m:p:", ['mode', 'perf'])File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/getopt.py", line 88, in getopt    opts, args = do_longs(opts, args[0][2:], longopts, args[1:])File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/getopt.py", line 159, in do_longs    raise GetoptError('option --%s must not have an argument' % opt, opt)getopt.GetoptError: option --mode must not have an argumentopts, args = do_longs(opts, args[0][2:], longopts, args[1:])文件 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/getopt.py", line 159, in do_longs raise GetoptError('option --%s must not have an argument' % opt, opt ) getopt.GetoptError: 选项 --mode 不能有参数那么我哪里出错了,如何解决呢?
查看完整描述

1 回答

?
海绵宝宝撒

TA贡献1809条经验 获得超8个赞

您的长选项名称缺少尾随=. 请参阅文档,即:

longopts,如果指定,必须是一个字符串列表,其中包含应该支持的长选项的名称。选项名称中不应包含前导“--”字符。需要参数的长选项应后跟等号 ('=') ...

IE

opts,args = getopt.getopt(sys.argv[1:], "m:p:", ['mode=', 'perf='])


查看完整回答
反对 回复 2021-10-10
  • 1 回答
  • 0 关注
  • 522 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信