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

无法使argparse读取带破折号的带引号的字符串吗?

无法使argparse读取带破折号的带引号的字符串吗?

蝴蝶刀刀 2019-12-03 15:46:29
有没有办法使argparse将两个引号之间的任何内容识别为单个参数?似乎不断看到破折号并假设这是新选项的开始我有类似的东西:mainparser = argparse.ArgumentParser()subparsers = mainparser.add_subparsers(dest='subcommand')parser = subparsers.add_parser('queue')parser.add_argument('-env', '--extraEnvVars', type=str,                        help='String of extra arguments to be passed to model.')...other arguments added to parser...但是当我跑步时:python Application.py queue -env "-s WHATEVER -e COOL STUFF"它给了我:Application.py queue: error: argument -env/--extraEnvVars: expected one argument如果我不使用第一个破折号,那么它可以很好地工作,但是能够输入带有破折号的字符串对我来说至关重要。我尝试用\进行转义,这会导致它成功,但会将\添加到参数字符串中。有人知道如何解决此问题吗?无论-s是否是解析器中的参数,都会发生这种情况。编辑:我正在使用Python 2.7。编辑2:python Application.py -env " -env"可以很好地工作,但是python Application.py -env "-env"才不是。EDIT3:像这个看起来是实际就是BEING已经讨论了一个错误:http://www.gossamer-threads.com/lists/python/bugs/89529,http://python.6.x6.nabble.com/issue9334- argparse不接受采用参数从optp-td578790.html开始的带破折号的参数。仅在2.7中存在,而在optparse中不存在。EDIT4:当前打开的错误报告是:http ://bugs.python.org/issue9334
查看完整描述

5 回答

  • 5 回答
  • 0 关注
  • 793 浏览
慕课专栏
更多

添加回答

举报

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