DEV Community


Posted on

Python: why using Argparse?

There are thousands of blog posts about argparse, the built-in Python module to make your own CLI.

Why would it be better than "from scratch" approaches?

Argparse is actually built-in, but I sometimes read Python scripts that reinvent the wheel.

Don't get me wrong. At the end of the day, you'll do whatever you want, but you might not know this simple module that can literally save hours of work.

CLI are hard to design

Building user-friendly interfaces for your commands could be tedious. You will likely have to handle various cases:

  • required parameters (you can use required=True when adding arguments with argparse)
  • optional parameters
  • default values
  • errors
  • bad inputs
  • aliases
  • documentation (e.g., usage)

And many more. You can totally code that, but using argparse will be more readable and efficient in most cases.

How to

Let's create a file called and write the following inside:

#!/usr/bin/env python3

import argparse

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Python Client")
    parser.add_argument("--myoption", type=str, help="short description for myoption", default="default value")

    args = parser.parse_args()
Enter fullscreen mode Exit fullscreen mode

Then, in the terminal:

python3 --myoption="cool"
Enter fullscreen mode Exit fullscreen mode

Is it the only solution?

Definitely no, and that's the beauty of Python. There are third-party libraries that could extend command-line creation in every possible ways.

However, the built-in argparse can cover most needs while sticking to the native modules, which is sometimes lighter and easier to include in your project.

Top comments (0)