【问题标题】:Python sys.argv and argparsePython sys.argv 和 argparse
【发布时间】:2016-05-23 18:21:02
【问题描述】:

当我从命令行运行脚本时,我一直在寻找向脚本添加参数值的方法。我发现似乎可以做到这一点的两个包是 sys.argv 和 argparse。

如果可能的话,我还希望能够添加某种帮助功能。

有人能解释一下这两者之间的区别吗?也许对于刚开始的人来说什么更容易?

【问题讨论】:

  • sys.argv 不是一个包。你会使用argparse
  • sys.argv 是一个参数列表。 argparse 是一个帮助你处理参数的包(包括添加一个--help 参数)。
  • sys.argv 是从命令行派生的字符串列表。 argparse 允许您创建一个可以解码 sys.argv 的解析器。对于简单的情况,您可以直接使用sys.argv

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


【解决方案1】:

出于两个原因,我建议您使用 argparse 作为命令行参数。正如文档中所指出的,制作 arg 非常简单,其次,因为您需要帮助功能,argparse 会免费为您提供。

文档:https://docs.python.org/2/howto/argparse.html

如果您需要更多帮助,请告诉我。

【讨论】:

    【解决方案2】:

    sys.argv 只是命令行参数的列表。

    argparse 是一个功能齐全的命令行解析器,通常解析 sys.argv 并以更易于使用的方式返回数据。

    如果您正在执行比接受一些必需位置参数的脚本更复杂的操作,您将需要使用解析器。根据您的 python 版本,python 标准库中有 3 个可用(getoptoptparseargparse),argparse 是迄今为止最好的。

    【讨论】:

    • 我很好奇,getopt 和 perl 模块中的 getopt 一样吗?
    • @Seekheart 或多或少。 getopt 是用于解析命令行选项的标准 POSIX 库,许多语言都提供了包装器或实现。 Python 模块主要是为了便于从使用它的其他语言移植代码,而不是在新代码中使用。
    • 这正是我想要的。谢谢!
    猜你喜欢
    • 2020-08-06
    • 2012-01-15
    • 2018-06-24
    • 2012-08-31
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 2015-07-09
    • 2021-08-01
    相关资源
    最近更新 更多