[파이썬] argparse 인수의 nargs 설정

argparse는 Python의 표준 라이브러리로서 명령줄 인터페이스를 구축하기 위한 강력한 도구입니다. argparse를 사용하여 명령줄에서 입력된 인수를 쉽게 구문 분석하고 처리할 수 있습니다.

argparse의 중요한 기능 중 하나는 nargs 설정입니다. nargs 설정은 인수가 명령줄에서 몇 개의 값을 받아야 하는지를 지정합니다. 이를 통해 여러 값을 한 번에 받거나 인수가 필요하지 않은 경우를 처리할 수 있습니다.

기본적인 nargs 설정

nargs는 다양한 값을 받는 데 사용될 수 있습니다. 가장 일반적인 nargs 설정 값인 '*'은 인수가 0개 이상의 값을 받을 수 있도록 만듭니다. 예를 들어, 다음과 같은 인수를 갖는 스크립트를 고려해 봅시다:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('files', nargs='*')
args = parser.parse_args()

print(args.files)

이 스크립트를 다음과 같이 실행하면:

python script.py foo.txt bar.txt baz.txt

다음 결과를 얻을 수 있습니다:

['foo.txt', 'bar.txt', 'baz.txt']

이는 인수로 여러 파일명을 제공할 수 있으며, 파일명이 필요 없는 경우 인수를 생략할 수 있는 것을 의미합니다.

다른 nargs 설정 값들

nargs 설정은 다양한 값을 받을 수 있도록 구성할 수 있습니다. 다음은 몇 가지 예입니다.

여러 nargs 설정 사용하기

때로는 인수에 여러 가지 nargs 설정을 동시에 사용하는 것이 유용할 수 있습니다. 예를 들어, 다음과 같은 인수를 받는 스크립트를 생각해 봅시다:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-f', '--files', nargs='+')
parser.add_argument('-d', '--directories', nargs='*')
args = parser.parse_args()

print(args.files)
print(args.directories)

여기서 -f 또는 --files 옵션은 여러 개의 파일명을 받고, -d 또는 --directories 옵션은 선택적으로 여러 개의 디렉토리를 받을 수 있습니다. 실행 예시는 다음과 같습니다:

python script.py -f file1.txt file2.txt -d dir1 dir2 dir3

출력은 다음과 같습니다:

['file1.txt', 'file2.txt']
['dir1', 'dir2', 'dir3']

결론

argparse를 사용하여 명령줄 인터페이스를 구축할 때, nargs 설정을 올바르게 사용하는 것은 매우 중요합니다. 적절한 nargs 설정을 사용하여 인수가 어떻게 처리되는지 제어하고 예상되는 입력을 구성할 수 있습니다. 이를 통해 명령줄 인터페이스를 더 유연하고 강력하게 만들 수 있습니다.