当前位置: 首页 > 面试题库 >

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

郗欣嘉
2023-03-14
问题内容

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

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

12个月前关闭。

改善这个问题

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


问题答案:

该答案表明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类,它使您可以轻松地将子命令html" target="_blank">嵌套在命令树中。它大量使用optparse将命令链接在一起。这不是我可以轻松解释的内容,但是可以在我的存储库中随意浏览主类以及使用它的类和选项解析器



 类似资料:
  • 问题内容: 我当前的脚本可以正常运行,但是可以将其(工具)安装到站点程序包中或类似位置。 我可以以安装方式进行安装,和/或是否有更好的安装命令行应用程序的方法? 问题答案: 尝试在setup()调用中使用参数。如setuptools docs 中所述,这应该可以完成我认为想要的操作。 要在此处复制:

  • 问题内容: 是否有适用于javascript的良好分析器?我知道firebug对分析代码提供了一些支持。但是我想确定更大范围的统计数据。想象一下,您正在构建大量的javascript代码,并且您想确定代码中实际上是什么瓶颈。首先,我想查看每个javascript函数和执行时间的配置文件统计信息。接下来将包括DOM函数。这与放慢速度的操作(如对渲染树的操作)相结合将是完美的。我认为,如果在我的代码,

  • 问题内容: 我正在寻找一种库/方法来解析比通用xml解析库具有更多html特定功能的html文件。 问题答案: 这是一个敏捷的HTML解析器,它构建了一个读/写DOM并支持纯XPATH或XSLT(您实际上不必了解XPATH或XSLT来使用它,不用担心…)。这是一个.NET代码库,可让您解析“网络外” HTML文件。该解析器对“真实世界”格式的HTML十分宽容。对象模型与提出System.Xml的对

  • 问题内容: 请注意 :这是一个古老的问题,带有古老的答案。现在大多数链接的应用程序都不再需要维护。这些天来,大多数人似乎都使用django- allauth 或python-social- auth 。为了后代的缘故,下面将完整保留原始问题。 至少有六打Django应用程序为Django提供OpenID身份验证: django-openid django-openid-auth 另一个django

  • 问题内容: 我有一个使用XML响应请求的服务器,我想在javascript中解析它。我真的很喜欢ActionScript XML解析器,它对我来说很容易使用。我在徘徊是否有一种非常简单/直接的方法来解析我从服务器获取的XML? 理想的用法应该是: fetchXML新的XMLParser。parser.parse访问文档。 顺便说一句,我计划使用jQuery。 问题答案: 一个普通的with 会解决

  • 问题内容: 按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 我过去曾经做过Java和JSP编程,但是我是Java Server Faces的新手,并且想知道JSF开发是否有一套最佳实践。 问题答案: 一些提示:了解JS