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
설정은 다양한 값을 받을 수 있도록 구성할 수 있습니다. 다음은 몇 가지 예입니다.
'?'
: 0 또는 1개의 값만 받습니다. 예를 들어,--verbose
옵션을 가진 스크립트의 경우,python script.py --verbose
와python script.py
두 가지 형태의 실행이 가능합니다.'+'
: 1개 이상의 값을 받습니다. 즉, 최소 한 개 이상의 인수가 제공되어야 합니다.int
: 고정된 개수의 값을 받습니다. 예를 들어,'3'
을 사용하면 항상 3개의 값이 제공되어야 합니다.
여러 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
설정을 사용하여 인수가 어떻게 처리되는지 제어하고 예상되는 입력을 구성할 수 있습니다. 이를 통해 명령줄 인터페이스를 더 유연하고 강력하게 만들 수 있습니다.