在调用python脚本(https://github.com/alvations/meanie)时,我有多个脚本计算不同的方法,给定一个数字列表作为参数:
例如,harmonic_mean()
:
# -*- coding: utf-8 -*-
import math
def harmonic_mean(x): # x is a list of values.
""" Returns the harmonic mean given a list of values. """
return len(x) / sum([1/i for i in x])
def main(means):
print "Input:", means
means = map(float,means)
print "harmonic mean = ", harmonic_mean(means)
if __name__ == '__main__':
import sys
if len(sys.argv) < 2:
sys.stderr.write('Usage: python %s mean1 mean2 mean3 ... \n' % sys.argv[0])
sys.exit(1)
main(sys.argv[1:])
和root_mean_square()
如您所见,这两个脚本执行完全相同的操作,但只是调用不同的mean()
函数,并在main()
处打印不同的输出。当用户在控制台/终端调用时,我如何将它们组合起来并允许用户给出一个mean option参数/参数?E、 g.组合的脚本是call meannie.py
:
$ python meanie.py harmonic 1 2 3
$ python meanie.py hm 1 2 3
上面的命令应该给出与调用相同的输出(这就是用户现在如何调用harmonic_mean()脚本):
$ python hm.py 1 2 3
Python有一流的函数;它们和其他任何东西一样都是对象,可以以相同的方式传递。因此,您只需要一种将用户输入映射到指定函数的方法,然后将其传递到您的
main
函数中:您可能还应该看看argparse模块,它比滚动您自己的命令行界面更容易出错。在
相关问题 更多 >
编程相关推荐