【问题标题】:Command-line options in python programs [closed]python程序中的命令行选项[关闭]
【发布时间】:2014-01-12 03:48:31
【问题描述】:

我知道如何使用 sys.argv 在 python (2) 中使用命令行参数,但是还有一种方法可以为程序提供类似 bash 的选项吗? (例如myprogram --help

【问题讨论】:

  • 对不起,如果这是一个明显和愚蠢的问题,但我是新手。
  • @MadTux - 我认为反对票与此无关。最有可能的是,它们的出现是因为没有表现出任何研究努力或没有尝试自己解决这个问题。对菜鸟投反对票,但结构合理的问题违反了本网站的精神。
  • 我试过了,甚至遇到了 argparse,但认为它不是用于选项:/

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


【解决方案1】:

这很容易手动完成:

for a in sys.argv[1:]:
    if a.startswith("-"):
        if a == "--help":
            do_help()
        else:
            do_usage()
    else:
        # handle command line arg

虽然有像 argparse 这样的库可以为您完成其中的一些工作,但值得知道的是,底层概念非常简单。

【讨论】:

  • 它们是不是“特别”?还是它们只是带有“-”或“--”的常用参数?
  • 没什么特别的。 sys.argv 只是空格分隔的单词。
  • 我最喜欢这种方式,因为它与 pylint 等静态分析器配合得很好。
【解决方案2】:

Python 3:http://docs.python.org/dev/library/argparse.html

Python 2.7:http://docs.python.org/2/library/argparse.html

Python 2.6 及以下版本:http://docs.python.org/release/2.6/library/optparse.html

上述库会(除非另有说明)根据参数解析器的给定参数自动为您生成--help

【讨论】:

    【解决方案3】:

    Python 有一个名为 argparse 的内置库。

    http://docs.python.org/dev/library/argparse.html

    还有一个教程

    http://docs.python.org/2/howto/argparse.html

    【讨论】:

      猜你喜欢
      • 2012-12-28
      • 2013-10-04
      • 1970-01-01
      • 2013-05-27
      • 2010-09-20
      • 2017-06-14
      • 2012-06-06
      • 2014-01-20
      • 2017-02-26
      相关资源
      最近更新 更多