복붙노트

[PYTHON] 파이썬에서 명령 행 인자에 어떻게 접근합니까?

PYTHON

파이썬에서 명령 행 인자에 어떻게 접근합니까?

파이썬을 사용하여 프로젝트 설정 셋업을 만들지 만 커맨드 라인 인수를 얻는 데 도움이 필요합니다.

나는 터미널에서 이것을 시도했다 :

$python myfile.py var1 var2 var3

필자의 Python 파일에서는 입력되는 모든 변수를 사용하려고합니다.

해결법

  1. ==============================

    1.파이썬 튜토리얼에서 설명합니다 :

    파이썬 튜토리얼에서 설명합니다 :

    import sys
    
    print(sys.argv)
    

    더 구체적으로 말하자면, python example.py one two three :

    >>> import sys
    >>> print(sys.argv)
    ['example.py', 'one', 'two', 'three']
    
  2. ==============================

    2.

    import sys
    
    sys.argv[1:]
    

    인자 목록을 줄 것입니다 (파이썬 파일의 이름은 포함하지 않습니다)

  3. ==============================

    3.파이썬 코드 :

    파이썬 코드 :

    import sys
    
    # main
    param_1= sys.argv[1] 
    param_2= sys.argv[2] 
    param_3= sys.argv[3]  
    print 'Params=', param_1, param_2, param_3
    

    기도:

    $python myfile.py var1 var2 var3
    

    산출:

    Params= var1 var2 var3 
    
  4. ==============================

    4.Python 2.7 이상에서 제공되는 argparse를 강력하게 추천합니다.

    Python 2.7 이상에서 제공되는 argparse를 강력하게 추천합니다.

    argparse 모듈은 보일러 플레이트 코드를 줄이고 코드가 더욱 강력 해집니다. 모듈이 모든 표준 사용 사례 (하위 명령 포함)를 처리하고, 도움말 및 사용법을 생성하며, 사용자 입력을 검사하고 위생 처리하므로 언제든지 걱정해야 할 모든 것들 당신은 sys.argv 접근 방식을 사용하고 있습니다. 그리고 그것은 무료입니다 (내장).

    여기에 작은 예제가 있습니다.

    import argparse
    parser = argparse.ArgumentParser("simple_example")
    parser.add_argument("counter", help="An integer will be increased by 1 and printed.", type=int)
    args = parser.parse_args()
    print(args.counter + 1)
    

    python prog.py -h의 결과물

    usage: simple_example [-h] counter
    
    positional arguments:
      counter     counter will be increased by 1 and printed.
    
    optional arguments:
      -h, --help  show this help message and exit
    

    그리고 예상대로 python prog.py 1에 대해 :

    2
    
  5. ==============================

    5.sys.argv를 사용하여 인수를 목록으로 가져올 수 있습니다.

    sys.argv를 사용하여 인수를 목록으로 가져올 수 있습니다.

    개별 요소에 액세스해야하는 경우

    sys.argv[i]  
    

    여기서 i는 인덱스이고 0은 실행중인 파이썬 파일 이름을 제공합니다. 그 이후의 인덱스는 전달 된 인수입니다.

  6. ==============================

    6.다음과 같이 호출하면 $ python myfile.py var1 var2 var3

    다음과 같이 호출하면 $ python myfile.py var1 var2 var3

    import sys
    
    var1 = sys.argv[1]
    var2 = sys.argv[2]
    var3 = sys.argv[3]
    

    배열과 마찬가지로 sys.argv [0]도 항상 현재 작업 디렉토리입니다.

  7. ==============================

    7.내가 생각할 수있는 몇 가지 추가 사항.

    내가 생각할 수있는 몇 가지 추가 사항.

    @allsyed에 따르면 sys.argv는 프로그램 이름을 포함하여 구성 요소 목록을 제공하므로 명령 줄을 통해 전달되는 요소의 수를 확인하려면 len ()을 사용하여이를 결정할 수 있습니다. 이를 토대로 사용자가 특정 수의 매개 변수를 전달하지 않은 경우 예외 / 오류 메시지를 디자인 할 수 있습니다.

    또한 명령 줄 인수를 처리하는 더 나은 방법을 찾고 있다면 https://docs.python.org/2/howto/argparse.html을 참조하십시오.

  8. from https://stackoverflow.com/questions/4033723/how-do-i-access-command-line-arguments-in-python by cc-by-sa and MIT license