2012-10-25 44 views
1
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()   

在命令行中,我可以使用「蟒蛇test.py -bin 10」運行程序的Python:使用命令行或導入

如果我想import test在另一個python腳本和使用功能nearbin(bin)在另一個腳本中,我該怎麼做?

回答

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))進行調用。

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)