0

我刚刚开始学习 python,我正在编写的程序需要参数才能运行特定的任务。例如(程序名称是 Samtho)

samtho -i Mozilla_Firefox

我怎样才能做到这一点?

4

5 回答 5

9

阅读有关optparse的文档。它非常强大,可以为您提供大量参数并创建帮助文本。

于 2009-11-14T18:58:27.803 回答
6

您可以使用模块optparsegetopt标准库。前者更灵活,因此被推荐。

如果要编写自己的解析器,则必须检查sys.argv. sys.argv[0]包含正在执行的程序的名称。sys.argv[1:]是一个包含所有传递给程序的参数的列表。

optparse这是一个使用(我通过手动设置模仿程序执行)的最小示例sys.argv

>>> import sys
>>> sys.argv = 'samtho -i Mozilla_Firefox'.split()
>>>
>>> from optparse import OptionParser
>>> parser = OptionParser()
>>> parser.add_option("-i")
<Option at 0xb7881b4c: -i>
>>> options, args = parser.parse_args()
>>> options
<Values at 0xb788958c: {'i': 'Mozilla_Firefox'}>
>>> options.i
'Mozilla_Firefox'
于 2009-11-14T18:59:15.510 回答
2

用于sys.argv直接获取输入参数(import sys首先)。有许多不同的库(optparse并且getopt内置模块很受欢迎)来帮助解析参数,但根据您需要的复杂性,进行原始匹配可能更容易。

于 2009-11-14T18:59:29.800 回答
1

如果您不介意从标准库中冒险,那么argparse通常被认为是参数解析的最佳选择。

于 2009-11-14T19:12:20.630 回答
0

我发现optfunc是最容易使用的库。

import optfunc, sys

def samtho(i=''):
    "Usage: %prog -i <option>"
    print i

if __name__ == '__main__':
    optfunc.run(samtho)
于 2009-11-14T20:25:11.983 回答