解析命令行参数的最佳方法是什么?[关闭]

发布于 2021-01-29 15:01:59

已关闭 。这个问题需要更加集中。它当前不接受答案。


想改善这个问题吗? 更新问题,使其仅通过编辑此帖子来关注一个问题。

12个月前关闭。

改善这个问题

什么是 最简单的tersest ,最 灵活的 方法或库解析Python的命令行参数?

关注者
0
被浏览
125
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    该答案表明optparse哪种方法适用于较旧的Python版本。对于Python
    2.7及更高版本,请argparse替换optparse。有关更多信息,请参见此答案

    正如其他人指出的那样,您最好使用optparse而不是getopt。getopt几乎是标准getopt(3)C库函数的一对一映射,并且使用起来不是很容易。

    optparse有点冗长,但结构更好,以后也更容易扩展。

    这是向解析器添加选项的典型行:

    parser.add_option('-q', '--query',
                action="store", dest="query",
                help="query string", default="spam")
    

    这几乎可以说明一切。在处理时,它将接受-q或–
    query作为选项,将参数存储在名为query的属性中,如果未指定则具有默认值。这也是自记录的,您可以在该选项的附近声明help参数(与-h
    /-help一起使用时将使用该参数)。

    通常,您使用以下方法解析参数:

    options, args = parser.parse_args()
    

    默认情况下,这将解析传递给脚本的标准参数(sys.argv [1:])

    然后,将options.query设置为您传递给脚本的值。

    您只需执行以下操作即可创建解析器

    parser = optparse.OptionParser()
    

    这些都是您需要的所有基础知识。这是显示此内容的完整Python脚本:

    import optparse
    
    parser = optparse.OptionParser()
    
    parser.add_option('-q', '--query',
        action="store", dest="query",
        help="query string", default="spam")
    
    options, args = parser.parse_args()
    
    print 'Query string:', options.query
    

    5行Python,向您展示基础知识。

    将其保存在sample.py中,然后运行一次

    python sample.py
    

    然后一次

    python sample.py --query myquery
    

    除此之外,您还会发现optparse非常容易扩展。在我的一个项目中,我创建了一个Command类,它使您可以轻松地将子命令嵌套在命令树中。它大量使用optparse将命令链接在一起。这不是我可以轻松解释的内容,但是可以在我的存储库中随意浏览主类以及使用它的类和选项解析器



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看