프로그래밍/Python

[Python] 파이썬 실행 시 매개변수 전달

Beginner:) 2023. 3. 18.
320x100

파이썬 input과 같은 함수로 유저에게 값을 직접 받을 수 있는데

 

파이썬을 실행 시 값을 전달받을 수도 있다.

 

아래의 코드로 확인가능하다.

import sys

if __name__ == '__main__':
    print(sys.argv[0]) # main.py
    print(sys.argv[1]) # a
    print(sys.argv[2]) # b

 

단점은 sys.argv가 배열이기 때문에 매개변수가 없으면 sys.argv의 len값은 1이기 때문에 sys.argv[1], sys.argv[2]와 같은 값을 호출하면 out of range 에러가 발생한다.

아래와 같이 코딩하거나 또는 for, if문등을 적절히 사용하면 에러는 피할 수 있다.

import sys

if __name__ == '__main__':
    print(sys.argv[0])
    if len(sys.argv)>1:
        print(sys.argv[1])
    if len(sys.argv) > 2:
        print(sys.argv[2])

 

 

그러나 매개변수가 꼭 필요한 상황이라면?

시간이 지나 매개변수의 쓰임을 까먹었다면?

매개변수의 type이 틀렸다면?

이 상황을 모두 if문 등으로 해결하기에는 여러모로 불편하다.

 

import sys

if __name__ == '__main__':
    if len(sys.argv) < 2:
        print("매개변수 2개 이상이 필수입니다.")
    else:
        print(sys.argv[0])
        if sys.argv[1].isdigit() is False:
            print("첫번째 인자는 숫자이어야 합니다.")
        else:
            print(sys.argv[1])
            print(sys.argv[2])

 

 

위 상황을 해결할 수 있는 방법 중 하나가 argparse이다.

 

2023.03.18 - [프로그래밍/Python] - [Python] argparse를 이용한 파이썬 실행 시 매개변수 받기

 

[Python] argparse를 이용한 파이썬 실행 시 매개변수 받기

이전, 실행 시 sys.argv를 이용한 매개변수 인자값 전달받는 방법을 확인했다. 2023.03.18 - [프로그래밍/Python] - [Python] 파이썬 실행 시 매개변수 전달 [Python] 파이썬 실행 시 매개변수 전달 파이썬 input

park-duck.tistory.com

 

반응형

댓글