OptionParser()在Python中显示选项时--help

OptionParser()在Python中显示选项时--help,python,optparse,optionparser,Python,Optparse,Optionparser,我需要为我的脚本创建一个“接口”,以便(通过crontab运行): 当--help时,终端将显示一个选项列表(格式良好,以\n分隔) 允许多选输入(逗号分隔) e、 g.(类似于下面的内容) 使用type=“choices”是否仍然可以这样做? 或者我可以使用type=“string”?我试图在“help”选项下的选项之间插入\n,但在运行时似乎忽略了这些选项 必须与python 2.4兼容:(尝试查看argparse的文档,应该做您需要的事情-并且默认情况下内置了帮助(-h,--help) 这

我需要为我的脚本创建一个“接口”,以便(通过crontab运行):

  • 当--help时,终端将显示一个选项列表(格式良好,以\n分隔)
  • 允许多选输入(逗号分隔)
  • e、 g.(类似于下面的内容)

    使用
    type=“choices”
    是否仍然可以这样做? 或者我可以使用
    type=“string”
    ?我试图在“help”选项下的选项之间插入
    \n
    ,但在运行时似乎忽略了这些选项


    必须与python 2.4兼容:(

    尝试查看argparse的文档,应该做您需要的事情-并且默认情况下内置了帮助(-h,--help)


    这是如何更改
    用法的示例。请尝试:

    from optparse import OptionParser 
    string = "Choices:\n\tdog\n\tcat\n\tfish"
    parser = OptionParser(usage=string)
    (options,args) = parser.parse_args()
    
    您还可以将
    字符串更改为此样式:

    string = """
        Choices:
            dog
            cat
            fish
    """
    
    然后测试它:

    $python code.py --help
    
    在中,将向您显示类似以下结果的内容:

    Usage: 
        Choices:
            dog
            cat
            fish
    
    
    Options:
      -h, --help  show this help message and exit
    

    请看这些相关问题,第一个问题有一个很好的“type='choice'”示例,第二个问题有多个值:

    您可以使用类似的方法或“手动”处理参数:

    然后,运行:

    python test.py --pet cat --pet dog --pet fish
    

    您想为脚本添加选项?或者希望创建交互区域?例如:选择您的选项:1)foo 2)bar,然后用户将选择其中一个?它需要在cronjob上运行。。。所以不能交互:(我没有完全理解你。你想在你的脚本中在python 2.4中得到
    argv
    ?所以你没有测试
    sys.argv
    ?在OptionParser代码中,我指定了详细信息--help,我需要添加新行…这可能吗?帮助内容的新行?你的意思是:“选项:\n\tdog\n\tcat\n\tfish”?需要与2.4兼容:(您可以为2.7之前的版本安装它-谷歌it@user3388884不,你不需要…即使你这样做了,正如gkusner所指出的,你也可以安装
    argparse
    作为第三方模块。请看,事实上
    argparse
    可以从python2.3开始运行。问题有点不同。我已经尝试过评论,但我没有足够的信誉现在有一个类似问题的链接。感谢您提供的提示,下次我将详细说明一个更好的答案!我改进了答案,使用了示例代码,根据另一个问题改编并缩短了版本。其他相关问题:
    from optparse import OptionParser
    
    def get_args():
      usage = "Usage: %prog [options]"
    
      parser = OptionParser()
    
      parser.add_option("--pet",
        type = "choice",
        action = 'append',
        choices = ["dog", "cat", "fish"],
        default = [],
        dest = pets,
        help = "Available pets: [dog, cat, fish]"
      )
    
      (options, args) = parser.parse_args()
    
      print options, args
      return (options, args)
    
    (opt, args) = get_args()
    print opt.pets
    
    python test.py --pet cat --pet dog --pet fish