2015-01-15 13 views
0

문제가 발생했습니다. 파이썬 스크립트를 실행하는 동안 특정 매개 변수가 명령 프롬프트를 통해 전달되었는지 확인해야합니다.python 2.7 명령 프롬프트에서 인수가 전달되었는지 확인하십시오.

은 내가 인수 trigger 통과되었는지의 경우 내가 확인할 수있는 방법

parser = argparse.ArgumentParser() 
parser.add_argument('-ip', '--ip') 
args = parser.parse_args() 

argparse를 사용하여 내 파이썬 스크립트에 python run.py -ip 127.0.0.1 -trigger 1

동안 같은 파이썬 파일을 실행합니다. 매개 변수에 트리거가 있으면 트리거의 값을 잡고 인쇄하십시오.

그리고 스크립트는 다음 명령 트리거 매개 변수없이

python run.py -ip 127.0.0.1의 모든 실행 할 수 있어야한다.

python run.py -ip 127.0.0.1 -trigger 트리거 매개 변수의 값이 없습니다.

python run.py -ip 127.0.0.1 -trigger 1 모든 매개 변수와 값이 있습니다.

더 나아가 실행 명령은 자동 시스템 자동 생성된다

, 따라서 파라미터보다, 예를 들면, 명령은 python run.py -ip 127.0.0.1 -trigger 1 prompt 0 base 5 ..... 될 수 있고, 자동 생성되는 등, 따라서 I는 parameter check하여 구현하고자 -trigger 1 prompt 0 base 5 내 파이썬 스크립트 그래서 그것은 전달 된 매개 변수의 번호를 처리 할 수 ​​있습니다.

+1

'parser.add_argument ('- trigger', '--trigger', action = store_true)'대신에'if args.trigger : Evert

+0

@Evert, 그 대답은 코멘트가 아니다 –

+0

@PadraicCunningham 그것은 잘못된 대답이다. – Evert

답변

3

parser = argparse.ArgumentParser() 
parser.add_argument('-ip', '--ip') 
parser.add_argument('-t','--trigger', nargs='*') 
args = parser.parse_args() 

--trigger이없는 경우 args.trigger이어야합니다. 기본값 (예 : None)

인수하지 않고있는 경우, args.trigger

이 그렇지 않으면 따라 모든 문자열의 목록이 될 것입니다 [], 빈리스트가 될 것입니다. 엄밀히 말하자면 사실입니다.

nargs='?'을 사용하면 const을 정의 할 수 있지만 하나의 인수 만 제공 할 수 있습니다.

nargs=argparse.REMAINDER도 사용해야합니다. --trigger 이후의 모든 것을 잡으려면 플래그 ('-')처럼 보일지 말지. 문자열을 다른 프로그램에 전달하는 경우 유용 할 수 있습니다. 문서의 예보기

parse_known_args은 현재 일부 문자열을 구문 분석하고 나중에 나머지를 처리하려는 경우 편리합니다. 다시 이것은 문서에 있습니다.

위치 지정 인수는 nargs='*'으로되어 있습니다.입력 문자열에있는 '--'은 구문 분석되어야하는 문자열을 간단한 인수 문자열로 보는 문자열과 구분하는 데 유용합니다.

+0

이것은 현재 내 문제를 해결합니다. – Nepal12

-1

argparse의 최소한의 예,하지만 당신은 읽어야는 tutorial :

#!/usr/bin/python 
import argparse 

parser = argparse.ArgumentParser(description='Check for trigger') 
parser.add_argument('-trigger', help='trigger value') 

args = parser.parse_args() 
if args.trigger is not None: 
    print("trigger value: {}".format(args.trigger)) 

당신은 출력을 얻을 : 파서에 --trigger 인수를 추가

○ → ./trigger.py 

○ → ./trigger.py -trigger= 
trigger value: 

○ → ./trigger.py -trigger 1 
trigger value: 1