【问题标题】:Python argparse helper section [duplicate]Python argparse 帮助器部分 [重复]
【发布时间】:2015-05-20 13:59:05
【问题描述】:

刚开始使用 argparse 解析命令。

我有一个命令 arg 是 -l。此参数从用户那里获取 2 个参数。

-l ONE_ARG TWO_ARG

在使用 argparse 的帮助文件中,我得到以下信息:

-l L L      Some message for this argument

我如何替换“L”以提供用户需要在这些参数中输入的内容。

-l "First_Name" "Last_Name"        Some message for this argument

基本上比“L L”更具描述性,这对用户来说真的没有任何意义。

【问题讨论】:

    标签: python python-2.7 command-line-arguments argparse


    【解决方案1】:

    最好的选择是使用元变量,https://docs.python.org/2/library/argparse.html#metavar,它给出了

    import argparse
    
    parser = argparse.ArgumentParser()
    parser.add_argument('-l', nargs=2, 
           help = "Some message for this argument", 
                        metavar=('"First Name"', '"Second Name"'))
    args = vars(parser.parse_args())
    

    一个更灵活但不太优雅的答案可能是手动指定您想要的确切帮助:

    import argparse
    
    def print_names():
        outstr = "usage: scriptname -l 'First Name' 'Second Name' "
        outstr += "Some message for this argument "
        print(outstr)
    
     parser = argparse.ArgumentParser()
     parser.add_argument('-l', help=print_names(), nargs=2)
     args = vars(parser.parse_args())
    

    【讨论】:

    • 谢谢,这很好用!!! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 2022-01-04
    • 2015-06-19
    • 2016-09-18
    • 2012-12-20
    • 1970-01-01
    相关资源
    最近更新 更多