[파이썬] argparse 인수의 다양한 출력 포맷 지원

Python’s argparse module is a powerful tool for parsing command-line arguments. It allows you to define and customize your command-line interface with ease. One of the great features of argparse is the support for various output formats. This allows you to display your program’s help messages and error information in a format that suits your needs. In this blog post, we will explore the different output formats supported by argparse and how to use them in your Python scripts.

Basic Output Format

By default, argparse uses a simple and concise output format to display help messages and error information. It provides a summary of the available options, along with their description and default values. Here’s an example of the basic output format:

import argparse

parser = argparse.ArgumentParser(description='Process some input.')
parser.add_argument('-i', '--input', help='input file')
parser.add_argument('-o', '--output', help='output file')

args = parser.parse_args()

The basic output format looks like this:

usage: my_script.py [-h] [-i INPUT] [-o OUTPUT]

Process some input.

optional arguments:
  -h, --help            show this help message and exit
  -i INPUT, --input INPUT
                        input file
  -o OUTPUT, --output OUTPUT
                        output file

Customizing Output Format

argparse provides several options to customize the output format. The formatter_class argument of argparse.ArgumentParser allows you to specify a custom formatter class. This class is responsible for formatting the help message and error information. Python’s argparse module comes with three built-in formatter classes: argparse.RawDescriptionHelpFormatter, argparse.RawTextHelpFormatter, and argparse.ArgumentDefaultsHelpFormatter.

Raw Description Help Formatter

The argparse.RawDescriptionHelpFormatter displays the help message as-is, without any additional formatting. This is useful when you want to include longer descriptions or usage examples in your help message. To use this formatter, pass argparse.RawDescriptionHelpFormatter as the value for formatter_class:

import argparse

parser = argparse.ArgumentParser(
    description='''This is a longer description of the script.
                    It can include multiple lines and usage examples.''',
    formatter_class=argparse.RawDescriptionHelpFormatter
)

Raw Text Help Formatter

The argparse.RawTextHelpFormatter allows you to use formatted text in the help message. This means you can use line breaks, tabs, and other formatting options to make the help message more readable. To use this formatter, pass argparse.RawTextHelpFormatter as the value for formatter_class:

import argparse

parser = argparse.ArgumentParser(
    description='This is a description with\nmultiple lines\nand\tformatting.',
    formatter_class=argparse.RawTextHelpFormatter
)

Argument Defaults Help Formatter

The argparse.ArgumentDefaultsHelpFormatter adds default values to the option descriptions. This is particularly useful when you want to provide information about the default behavior of your program. To use this formatter, pass argparse.ArgumentDefaultsHelpFormatter as the value for formatter_class:

import argparse

parser = argparse.ArgumentParser(
    description='Process some input.',
    formatter_class=argparse.ArgumentDefaultsHelpFormatter
)
parser.add_argument('-i', '--input', help='input file', default='input.txt')
parser.add_argument('-o', '--output', help='output file', default='output.txt')

Conclusion

argparse in Python provides support for various output formats, allowing you to customize the appearance of the help messages and error information. By using the formatter_class argument, you can choose between different formatter classes to achieve the desired format. Whether you want a basic output format, a raw description, raw text with formatting, or default values displayed, argparse has got you covered. Experiment with these different output formats to create a user-friendly command-line interface for your Python scripts.

Happy coding!