如何读取/处理命令行参数?

我原本是C程序员。 我看到许多技巧和“黑客”来阅读许多不同的论点。

Python程序员可以做些什么?

有关

  • 抓取/解析传递给Python脚本的命令行参数的最佳方式是什么?
  • 实现一个“[command] [action] [parameter]”样式的命令行界面?
  • 我如何在Python中处理命令行参数?
  • 如何使用Python的optparse格式化位置参数帮助?

  • 请注意,optparse在Python 2.7版本中已弃用:

    http://docs.python.org/2/library/optparse.html。 argparse是替换:http://docs.python.org/2/library/argparse.html#module-argparse


    标准库中有以下模块:

  • getopt模块与GNU getopt类似。
  • optparse模块提供了面向对象的命令行选项解析。
  • 以下是使用文档中后者的示例:

    from optparse import OptionParser
    
    parser = OptionParser()
    parser.add_option("-f", "--file", dest="filename",
                      help="write report to FILE", metavar="FILE")
    parser.add_option("-q", "--quiet",
                      action="store_false", dest="verbose", default=True,
                      help="don't print status messages to stdout")
    
    (options, args) = parser.parse_args()
    

    optparse支持(除其他外):

  • 按任意顺序的多个选项。
  • 短期和长期期权。
  • 默认值。
  • 生成使用帮助消息。

  • import sys
    
    print("n".join(sys.argv))
    

    sys.argv是一个包含在命令行sys.argv脚本的所有参数的列表。

    基本上,

    import sys
    print(sys.argv[1:])
    

    只是为了argparse而传播福音,这是更好的原因。实质上:

    (从链接复制)

  • argparse模块可以处理位置参数和可选参数,而optparse只能处理可选参数

  • argparse对于你的命令行界面应该是什么样子不是教条式的 - 像-file或/ file这样的选项被支持,就像所需的选项一样。 Optparse拒绝支持这些功能,宁愿纯度超过实用性

  • argparse会生成更多信息量的使用消息,包括从您的参数中确定的命令行使用消息,以及帮助位置参数和可选参数的消息。 optparse模块要求您编写自己的使用字符串,并且无法显示位置参数的帮助。

  • argparse支持使用可变数量的命令行参数的操作,而optparse要求事先知道参数的确切数量(例如1,2或3)

  • argparse支持调度到子命令的解析器,而optparse则需要设置allow_interspersed_args并手动执行解析器调度

  • 而我个人的最爱:

  • argparse允许类型和动作参数add_argument()用简单的add_argument()参数指定,而optparse则需要像STORE_ACTIONSCHECK_METHODS这样的黑客类属性来获得适当的参数检查
  • 链接地址: http://www.djcxy.com/p/30303.html

    上一篇: How to read/process command line arguments?

    下一篇: How to run Rake tasks from within Rake tasks?