2017-11-22 1 views
-1

arg 구문 분석에 대해 다른 검사를 시도합니다. -c 또는 -l이 해당 코드 만 호출하면.
지금 실행하면 두 문이 모두 호출됩니다. 예를 들어, -c가 단지 호출되면 -l에 대한 실행 코드가 완료됩니까?arg parse가 호출되었는지 확인하고 if 문을 실행하십시오.

#!/usr/bin/python3 
import argparse 

parser = argparse.ArgumentParser() 
parser.add_argument('-c', action='store_true') 
parser.add_argument('-l', action='store_true') 

a = parser.parse_args() 
if a.c: 
    { 
     print("get custom config") 
    } 
else: 
    { 
     print("using default config file") 
    } 

b = parser.parse_args() 

if b.l: 
    { 
     print("List files within config") 
    } 
else: 
    { 
     print("Call Normal Code") 
    } 

언제나처럼 도와 줘서 고마워.

+0

음. 파이썬은 조건 블록에'{} '을 사용하지 않는다. –

+1

'parser.parse_args()'를 여러 번 호출 할 필요가 없다. 'args = parser.parse_args()'와'if args.c'와'if args.l'로 한 번만 쓰면됩니다. – ZWiki

+0

포인터를 주셔서 감사합니다. 나는 {}과 그것의 여전히 같은 것을 제거했습니다. 1이 지정 되더라도 –

답변

0

감사합니다. ZWiki .... 수정 된 코드는 제안 된대로 ... 아래를 찾으십시오.

import argparse 

parser = argparse.ArgumentParser() 
parser.add_argument('-c', action='store_true') 
parser.add_argument('-l', action='store_true') 

args = parser.parse_args() 
if args.c: 
     print("get custom config") 
else: 
     print("use default config code") 

if args.l: 
     print("List files within config") 
+0

조건이 필요한가요? 파서는 매개 변수로 기본값을 사용합니다. https://docs.python.org/2/library/argparse.html#parser-defaults –

+0

하지만 각 섹션에서 실행할 코드가 많습니다. 내가 어떻게 각 기본값에서 이것을 부를 수 있을까? –

관련 문제