python命令行输入参数,python里的参数

  python命令行输入参数,python里的参数

  要使用Python内置的argparse包分析布尔命令行选项,您知道这个问题及其一些答案。密码的布尔语法分析。在

  有回答(准确的说是IMO)指出布尔选项最常见最直接的用法是同时接受- foo选项和{}选项。它将程序中的一些值分别设置为True或{}。在

  但在我看来,我能找到的所有答案都不能真正准确地完成任务。一般来说,他们似乎缺少以下一项。您可以设置适当的默认值(真、假或无)。在

  program.py - help提供的帮助文本准确而有用,包括显示默认值。在

  其中之一(我不介意任何一个,但有时我希望两个都有):

  自变量-foo可以被下面的自变量-no-foo覆盖。反之亦然

  - foo和{}不兼容且互斥。在

  我想知道的是argparse能不能用。在

  根据@mgilson和@fnkr的回答,defadd_bool_arg(parser,name,help_true,help_false,default=None,Exclle)是我的。

  如果独占:

  group=parser . add _ mutually _ exclusive _ group(必需=false)).

  否则:

  group=解析器

  group.add_argument( - name,dest=name,action=store_true ,help=help_true)).

  group.add_argument( - no-name,dest=name,action=store_false ,help=help_false)).

  parser . set _ defaults(* * { name:default }).

  parser=arg parse . argument parser(formatter _ class=arg parse . argumentdefaultshelpformatter)).

  add_bool_arg(parser, foo , Do foo , Dont foo ,exclusive=True)).

  add_bool_arg(parser, bar , Do bar , Dont bar ,default=True,exclusive=False)

  大多数东西都是好的,但是帮助文本令人困惑:

  ^{2}$

  更好的帮助文本是用法:arg test . py[-h][-foo -no-foo][-bar][-no-bar]

  可选参数:

  -h,-helpshowthishelpmessageandexit

  -foo-no-foowethertofoo(默认值:无)).

  - bar - no-barwhethertobar(默认值:true).

  但是,我看不到实现这一点的方法。因为-* 和-no-* 必须始终声明为单独的参数(请参见)。在

  除了上面提到的so问题,您还尝试使用另一个SO问题中显示的技术创建一个自定义操作。这是带有附加参数的pythongparsecustomization。这些很快就会失效。错误:argument-foo:expectedonearvalue,或“如果设置了nargs=0”“value error 3360 nargsforstoreaction value”可能是因为除预定义的“store\uconst”、“store\u true”和“append”之外的所有操作都需要使用_StoreAction类。在

  有没有其他方法可以达到这个目的?如果你有什么我还没有想到的想法,请告诉我!在

  (顺便说一句,我不是试图补充上面的第一个问题,而是在创造这个新问题。上面的原始问题实际上需要- foo TRUE和处理{}参数的方法,所以这是不同的,不太常见。)

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: