是否有正确的方法来读取python应用程序的参数?
示例:
python game.py -server 127.0.0.1 -nick TheKiller1337
有没有正确的方法来解释这些论点? 就像现在一样,我有一些带有ifs的while循环。但它变得相当大。我应该为参数阅读做一般课程,还是已经在python中实现了?
答案 0 :(得分:9)
这三个都在标准库中。
我推荐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()
你明白了。