2013-10-29 5 views
0

다음 코드 단편을 통해 첫 번째 인수를 확인하고 다음 오류를 발견했습니다. 첫 번째 인수를 선택적으로 만드는 방법에 대한 도움이 필요하십니까?파이썬에서 선택적 입력 매개 변수를 설정하는 방법

코드 조각 : -

branch = '' 
if sys.argv[1]: 
    branch = sys.argv[1] 

오류 : -

Traceback (most recent call last): 
    File "test.py", line 102, in <module> 
    main() 
    File "test.py", line 66, in main 
    if sys.argv[1]: 
IndexError: list index out of range 
+0

argparse 모듈 –

답변

0

사용 예외 처리 (EAFP는) :

try: 
    branch = sys.argv[1] 
except IndexError: 
    branch = '' 
0

당신은 사용할 수 있습니다

branch = sys.argv[1] if len(sys.argv) >= 2 else '' 
1

파이썬에 매개 변수를 입력하는 경우 getopt module을 사용할 수 있습니다. 여기서 매개 변수는 선택적 일 수 있으며 올바른 플래그가있는 한 모든 순서로 입력 할 수 있습니다.

아래 예제에서 사용자는 입력 파일 이름과 데이터베이스 이름의 두 가지 선택적 매개 변수를 설정할 수 있습니다. 이 코드는

python example.py -f test.txt -d HelloWorld

또는

python example.py file=test.txt database=HelloWorld

또는이 둘의 믹스 앤 매치를 사용하여 호출 할 수 있습니다. 플래그 및 이름은 필요에 맞게 변경할 수 있습니다.

import getopt 

def main(argv): 
    inputFileName = '' 
    databaseName = '' 
    try:                  
     opts, args = getopt.getopt(argv,"f:d:",["file=","database="]) 
    except getopt.GetoptError:             
     print('-f <inputfile> -d <databasename> -c <collectionname>') 
     sys.exit() 
    for opt, arg in opts:              
     if opt in ('-f','--file'):            
      inputFileName = arg             
     elif opt in ('-d','--database'):           
      databaseName = arg 

if __name__ == "__main__": 
    main(sys.argv[1:]) 
관련 문제