[파이썬] argparse 인수의 다중 선택 옵션 설정

Argparse is a popular Python library for creating command-line interfaces (CLIs). It provides a simple way to parse command-line arguments and options. In this blog post, we will explore how to configure multiple selection options using argparse.

Why use multiple selection options?

Sometimes, it’s useful to allow users to select multiple values for a particular option. For example, if you are building a CLI tool to process multiple files, you might want to allow users to specify multiple file paths as input. With argparse, you can easily define such options and handle them in your Python code.

Configuring multiple selection options with argparse

To enable multiple selection options in argparse, we need to use the nargs parameter. This parameter defines the number of arguments that should be consumed for a particular option. By setting nargs='*', we can allow zero or more arguments to be passed to the option. Similarly, nargs='+' allows one or more arguments.

Let’s see an example of how to configure multiple selection options using argparse.

import argparse

# Create an ArgumentParser object
parser = argparse.ArgumentParser()

# Add a positional argument for file paths
parser.add_argument('files', nargs='*', help='Specify file paths')

# Add an optional argument for input type
parser.add_argument('-t', '--type', nargs='+', help='Specify input types')

# Parse the command-line arguments
args = parser.parse_args()

# Access the values of the options
print('Files:', args.files)
print('Input types:', args.type)

In the above code, we define a positional argument files and an optional argument -t/--type. Both allow multiple values to be specified. The values are then accessed using the args.files and args.type attributes.

Running the script

To test the above script, save it to a Python file (e.g., script.py) and run it from the command line. Here are a few example commands:

$ python script.py file1.txt file2.txt -t csv json
Files: ['file1.txt', 'file2.txt']
Input types: ['csv', 'json']

$ python script.py -t xml json
Files: []
Input types: ['xml', 'json']

As you can see, the files option accepts zero or more file paths, while the type option requires at least one input type.

Conclusion

In this blog post, we’ve explored how to configure multiple selection options using argparse in Python. By using the nargs parameter with values like '*' or '+', you can allow users to pass multiple values to your CLI tool. This can be useful for scenarios where multiple file paths, input types, or any other values need to be specified. Take advantage of argparse to create more flexible and interactive command-line tools.