Skip to Content
Robust Python CLI
video

Robust Python CLI

by Alfredo Deza, Noah Gift
February 2022
Intermediate
8m
English
Pragmatic AI Labs

Overview

Build a robust Python CLI tool with argparse

The argparse module is part of the Python standard library and meant to help you build robust command line tools. Once you need flags, switches, values, or positional arguments, it is very difficult to achieve that without using a framework.

In this case, argparse can help build all you need to handle inputs in the terminal. We'll see how a single file named size.py that calculates file sizes can make use of argparse to handle the input in the terminal. Then, we will cover how error handling is done automatically when the expectations from argparse aren't met. And finally, we'll go through some of the help menu options that construct the body of the help output.

Check the resources section for the GitHub repo with sample code

Why would you want to use argparse

Since argparse is part of the Python standard library, there is no need for you to define or install any external dependencies. You are ensuring that any Python installation in any system will work correctly out of the gate. A very basic Python CLI tool without dependencies using the argparse module

Next steps

Now that you know how to enhance a Python script into a more powerful one with argparse, you can try out other frameworks like the Click framework or something much simpler by using the sys module. I have examples and guides for the sys.argv module and for using the Click framework.

Useful links and resources
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Watch now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Fast and Easy Python CLI

Fast and Easy Python CLI

Alfredo Deza, Noah Gift
Python command line one hour

Python command line one hour

Alfredo Deza, Noah Gift
Python Command Line Tools

Python Command Line Tools

Alfredo Deza, Noah Gift

Publisher Resources

ISBN: 50129VIDEOPAIMLOtherOtherOther