2016-06-28 4 views
1

현재 5 개의 인수 값이있는 파이썬 스크립트를 호출하는 MS 배치 (***. bat) 래퍼를 다루고 있습니다.인수 값을 기반으로 다기능 파이썬 스크립트에서 개별 함수를 "건너 뛰는"방법

파이썬 스크립트에 sys.argv(6)을 피드로 보내서 선택적으로 그 안에있는 특정 기능을 건너 뜁니다.

배치 언어로 말하자면, if %6=yes goto :function2 else goto :function1 스타일의 서브 루틴을 우회하고 싶습니다. 배치가 아니라 파이썬 일뿐입니다.

모든 입력 사항을 높이 평가합니다.

미리 감사드립니다.

답변

1

스크립트에 인수를 전달하십시오.

다음
python myscript.py %6 

myscript.py에서 : 당신의 박쥐 파일에 더 나은

import sys 

def function1(): 
    pass 

def function2(): 
    pass 

if __name__ == "__main__": 
    if len(sys.argv) > 1 and sys.argv[1] == 'yes': 
     function2() 
    else: 
     function1() 
0

그 파이썬에게 argparser를 사용하여 시작합니다. 그것은 기능, 많은 도움과 설명을 제공합니다

sample.py :

import argparse 


def function1(): 
    print("Function 1") 


def function2(): 
    print("Function 2") 

if __name__ == '__main__': 
    parser = argparse.ArgumentParser(description='<Program Description>') 
    parser.add_argument('-f1', help='Execute function1', default=False, action="store_true") 
    parser.add_argument('-f2', help='Execute function2', default=False, action="store_true") 
    args = parser.parse_args() 
    if args.f1: 
     function1() 
    elif args.f2: 
     function2() 
    else: 
     print("Please specify the arguments. Use \"python sample.py -h\" for help") 

사용법 :

#For function1: 
python3 sample.py -f1 

#For function2: 
python3 sample.py -f2 

#For help: 
python3 sample.py -h 

편집 :

if __name__ == '__main__': 
    parser = argparse.ArgumentParser(description='<Program Description>') 
    parser.add_argument('-e', '--exec', help="Exec Parameter", required=True) 
    args = vars(parser.parse_args()) 
    if str(args['exec']).__eq__('yes'): 
     function1() 
    else: 
     function2() 
: 당신의 문제에 대한

자세한 내용은 python argparse tutorial

을 참조하십시오.