Python参数解释器

时间:2011-02-14 08:41:57

标签: python input arguments

是否有正确的方法来读取python应用程序的参数?

示例:

python game.py -server 127.0.0.1 -nick TheKiller1337

有没有正确的方法来解释这些论点? 就像现在一样,我有一些带有ifs的while循环。但它变得相当大。我应该为参数阅读做一般课程,还是已经在python中实现了?

4 个答案:

答案 0 :(得分:9)

使用argparseoptparsegetopt

这三个都在标准库中。

我推荐argparse。这是三者中最新的,IMO最容易使用。它是在2.7版本中引入的。

如果使用较旧的Python版本,我建议使用optparse(或来自pypi的get argparse for version 2.5 and 2.6

答案 1 :(得分:2)

如果您使用的是v2.7或更高版本,则可以使用argparse。文档中有例子。

对于早期的蟒蛇,optparse通常是要走的路。

替代方案是getopt,如果你更愿意写'C'。

对于这些中的每一个,您都必须将参数列表更改为更常规。以下任何一种:

  • python game.py --server 127.0.0.1 --nick TheKiller1337
  • python game.py -s 127.0.0.1 -n TheKiller1337

答案 2 :(得分:1)

您可以使用getopt,只需对初始计划稍作更改即可。这就像是:

python game.py -s127.0.0.1 -nTheKiller1337 

答案 3 :(得分:0)

我更喜欢optparse,因为它支持2.6,因为它有一个很好的界面,自动生成帮助文本,并支持其他参数,而不仅仅是参数。

像这样:

from optparse import OptionParser
parser = OptionParser()
parser.add_option("-e", "--event", dest="type", help="type of EVENT")
(options, args) = parser.parse_args()

if options.type == 'fubar':
  blah.blubb()

你明白了。