본문 바로가기

AI/Coding errors

Python argparse action='store_true'의 의미

반응형
# NeRF code 
def config_parser():
    import argparse
    parser = argparse.ArgumentParser()

    parser.add_argument("--render_only", action='store_true',
                        help='do not optimize, reload weights and render out render_poses path')
    parser.add_argument("--render_test", action='store_true',
                        help='render the test set instead of render_poses path')
    return parser

요즘 github에 보면 argparse를 이용해서 인자를 받고 training 시키는 형태는 수 없이 볼 수 있다.

무심코 지나쳤던 부분인데, parser에서 action='store_true' 부분은 무엇일까?

 

나는 처음에는 "true 값을 가지는 것이구나" 라고 생각했지만 아니였다..!


# Simple example
# parser.py

if __name__ == '__main__':
    import argparse
    parser = argparse.ArgumentParser()

    parser.add_argument("--ex1", action="store_true")
    parser.add_argument("--ex2", action="store_true")
    parser.add_argument("--ex3", action="store_false")
    parser.add_argument("--ex4", action="store_false")
    
    args = parser.parse_args()
    
    print(args.ex1)
    print(args.ex2)
    print(args.ex3)
    print(args.ex4)

위와 같은 코드가 있다고 하자. 그렇다면 parser는 현재 ex1, ex2, ex3, ex4라는 인자를 가지고 있는 것이다.

 

# Python terminal

python parser.py --ex1 --ex4
>> True
>> False
>> True
>> False

action='store_true': 값이 입력되면 True를 출력하고 아니면 False를 출력.

action='store_False': 값이 입력되면 False를 출력하고 아니면 True를 출력. 

 

위와 같이 정리가 가능하다!


2023.02.09 Kyujinpy 작성.

반응형