[파이썬] argparse와 sys.argv의 관계

파이썬에서 명령행 인자를 처리하기 위해 argparse 모듈을 사용하는 것은 매우 흔한 일입니다. 그러나 argparse를 사용하기 전에 sys.argv라는 파이썬 내장 모듈을 이해하는 것이 중요합니다.

sys.argv는 명령 프롬프트에서 실행한 파이썬 스크립트에 전달된 인자들의 리스트입니다. 스크립트 파일명은 sys.argv[0]에 저장되고, 추가적인 인자들은 sys.argv[1], sys.argv[2], …와 같이 인덱스로 접근할 수 있습니다.

간단한 예시를 통해 sys.argv를 살펴보겠습니다. 다음과 같이 스크립트 파일인 script.py를 실행합니다.

python script.py arg1 arg2 arg3

이때 sys.argv는 다음과 같이 저장됩니다.

['script.py', 'arg1', 'arg2', 'arg3']

여기에서 sys.argv[0]'script.py'이고, sys.argv[1]'arg1'이 되는 것입니다.

argparse 모듈은 이러한 sys.argv를 사용하여 명령행 인자를 구문 분석하고 처리합니다. argparse는 스크립트에 예상되는 인자들을 정의하고, 사용자가 입력한 인자들을 추출하고, 필요에 따라 처리하는 기능을 제공합니다.

다음은 argparse를 사용하여 sys.argv를 처리하는 간단한 예제 코드입니다.

import argparse

# ArgumentParser 객체 생성
parser = argparse.ArgumentParser()

# 인자 정의
parser.add_argument('name', help='이름 입력')
parser.add_argument('--age', help='나이 입력')

# 명령행 인자 구문 분석
args = parser.parse_args()

# 입력된 인자들 사용
print(f'이름: {args.name}')
print(f'나이: {args.age}')

위의 코드를 실행하기 위해서는 명령 프롬프트에서 다음과 같이 입력해야 합니다.

python script.py John --age 25

이때 argparsesys.argv를 분석하여 'John'args.name에 저장하고, '--age''25'args.age에 저장합니다. 마지막으로 이 값을 사용하여 출력하면 다음과 같은 결과를 얻을 수 있습니다.

이름: John
나이: 25

argparse는 sys.argv를 자동으로 해석하여 필요한 인자를 추출하고 유효성 검사를 수행하는 등 더 많은 기능을 제공합니다. 따라서 sys.argv를 직접 다루기보다는 argparse를 사용하여 명령행 인자를 처리하는 것이 더 편리하고 안전합니다.

argparse의 세부적인 사용법과 기능에 대한 자세한 내용은 파이썬 공식 문서를 참고하시기 바랍니다.