Python:使用命令行或导入

时间:2012-10-25 06:55:24

标签: python

def nearbin():
    parser = argparse.ArgumentParser(description = "choose near bin")
    parser.add_argument("-bin",  type=int,action = "store", default = "10", help="bin number")   
    args = parser.parse_args()   
    bin = args.bin 
    print bin
    return f(bin)


if __name__ == "__main__":
    nearbin()        

在命令行中,我可以使用“python test.py -bin 10”来运行程序

如果我想在另一个python脚本中import test并在另一个脚本中使用函数nearbin(bin),我该怎么做?

2 个答案:

答案 0 :(得分:3)

我通常的做法:

def nearbin(bin):
    ...

def main(args):
    parser = argparse.ArgumentParser(...)
    ...
    args = parser.parse_args(args)

    nearbin(args.bin)

if __name__ == '__main__':
    sys.exit(main(sys.argv[1:]))

这使您可以支持直接命令行调用(./script.py -bin 20),使用命令行参数(main("-bin 20".split()))和程序化调用(nearbin(20))进行调用。

答案 1 :(得分:2)

然后你应该解析__main__检查中的命令行参数并将它们传递给nearbin,如下所示:

def nearbin(bin):
    print bin
    return f(bin)


if __name__ == "__main__":
    parser = argparse.ArgumentParser(description = "choose near bin")
    parser.add_argument("-bin",  type=int,action = "store", default = "10", help="bin number")   
    args = parser.parse_args()   
    bin = args.bin 
    nearbin(bin)