[Python] 004. 실행 시 인자값 전달받아 사용하기

[Python] argpase

Python 실행시 인자값을 전달받아 사용하면 편리한 경우가 많다. (옵션에 따라 다른 기능을 실행하는 등)
아래와 같은 방법으로 인자값을 넘겨서 사용할 수 있다.

import sys

if __name__ == '__main__':
    print("args :", len(sys.argv))
    if len(sys.argv) < 2:
        print("입력된 인자가 없음")
        sys.exit()
    
    arg1 = sys.argv[1]
    
    print("arg1 : " + arg1)

sys 모듈을 import하여 간단히 사용할 수 있지만, argparse 모듈을 사용하면 인자값을 더 직관적이고 편리하게 사용할 수 있다.

import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--version', '-v')

    args = parser.parse_args()

    if args.version:
        print("version :", args.version)
실행결과

store_true 옵션을 사용하여 값을 사용하지 않고, 인자가 있는지 없는지에 따라 동작하게 사용할 수도 있다.

import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--option', '-o', action='store_true')

    args = parser.parse_args()

    if args.option:
        print("옵션 있음")

    if not args.option:
        print("옵션 없음")
store_option 테스트 결과

이밖에 type, help 등 여러가지 옵션들을 사용하여 직관적이고 편리하게 인자를 컨트롤할 수 있다.

import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--option', '-o', type=int)

    args = parser.parse_args()

    if args.option:
        print("option value :", args.option)
type 테스트 결과
import argparse

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--option', '-o', help="이 기능에 대한 설명입니다.")

    args = parser.parse_args()

    if args.option:
        print("option value :", args.option)
help 테스트 결과

Python Document  참고(https://docs.python.org/ko/3/howto/argparse.html)

 

Leave a Comment