我刚刚开始学习 python,我正在编写的程序需要参数才能运行特定的任务。例如(程序名称是 Samtho)
samtho -i Mozilla_Firefox
我怎样才能做到这一点?
我刚刚开始学习 python,我正在编写的程序需要参数才能运行特定的任务。例如(程序名称是 Samtho)
samtho -i Mozilla_Firefox
我怎样才能做到这一点?
阅读有关optparse的文档。它非常强大,可以为您提供大量参数并创建帮助文本。
您可以使用模块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'
用于sys.argv
直接获取输入参数(import sys
首先)。有许多不同的库(optparse
并且getopt
内置模块很受欢迎)来帮助解析参数,但根据您需要的复杂性,进行原始匹配可能更容易。
如果您不介意从标准库中冒险,那么argparse通常被认为是参数解析的最佳选择。
我发现optfunc是最容易使用的库。
import optfunc, sys
def samtho(i=''):
"Usage: %prog -i <option>"
print i
if __name__ == '__main__':
optfunc.run(samtho)