Python을 처음 접했을때 스크립트를 작성하고 python ~~~.py
이런 식으로 실행했습니다.
필요한 인자는 스크립트 안에 세팅을 했었죠. (매우 무지했을 시절…물론 현재도 무지함…)
하지만 실제로 오픈소스를 접하다 보면 python ~~~~.py ?? ?? ??
, python ~~~~.py --a --b --c
와 같은 방식으로 많이 실행합니다!
이번 포스팅에선 위와 같이 스크립트를 실행할때 인자를 넘기는 법에 대해 두 가지 빠르게 예제를 적어보겠습니다!!
예제는 두개의 정수 a, b를 받아서 a^b를 하는 스크립트 입니다!
import sys
assert sys.argv[1].isdigit(), f"첫번째 인자('{sys.argv[1]}')가 정수가 아닙니다!"
assert sys.argv[2].isdigit(), f"두번째 인자('{sys.argv[2]}')가 정수가 아닙니다!"
a = int(sys.argv[1])
b = int(sys.argv[2])
print(f"{a}^{b} = {a**b}")
# python ~~~.py 2, 4
# 2^4 = 16
sys.argv
같은 경우엔 python ~~~.py 2, 4 에서 ~~~.py 와 같이 실행하는 스크립트 이름부터 인자로 취급을 합니다.argv[1]
로 한 것입니다!
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--a', type=int)
parser.add_argument('--b', type=int)
args = parser.parse_args()
print(f"{args.a}^{args.b} = {args.a**args.b}")
# python ~~~.py --a 2 --b 4
# 2^4 = 16