我刚刚开始学习python,我正在编写的程序需要参数才能运行特定的任务。例如(程序名称是Samtho)
samtho -i Mozilla_Firefox
我该怎么做?
答案 0 :(得分:9)
阅读optparse上的文档。它功能非常强大,可以为您提供大量参数并创建帮助文本。
答案 1 :(得分:6)
您可以使用标准库中的模块optparse
和getopt
。前者更灵活,因此被推荐。
如果你想编写自己的解析器,那么你必须检查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'
答案 2 :(得分:2)
使用sys.argv
直接获取输入参数(首先import sys
)。有许多不同的库(optparse
和getopt
内置模块很受欢迎)来帮助解析参数,但根据您需要的复杂性,进行原始匹配可能会更容易。
答案 3 :(得分:1)
如果您不介意从标准库中冒险,argparse通常被认为是参数解析的最佳选择。
答案 4 :(得分:0)
我发现optfunc是最容易使用的库。
import optfunc, sys
def samtho(i=''):
"Usage: %prog -i <option>"
print i
if __name__ == '__main__':
optfunc.run(samtho)