Code Reference

Hello CLI

Python · Example / how-to

Hello CLI

Python · Example / how-to


📋 Overview

Minimal command-line greeting with argparse: one positional argument, one flag, and a clean main() entrypoint.

🔧 Core concepts

PieceRole
ArgumentParserDefine CLI interface
Positional argRequired name
store_trueOptional --shout flag
main() + exit codeTestable entry, 0 on success

💡 Examples

hello_cli.py:

from __future__ import annotations

import argparse
import sys


def greet(name: str, shout: bool = False) -> str:
    msg = f"Hello, {name}!"
    return msg.upper() if shout else msg


def build_parser() -> argparse.ArgumentParser:
    p = argparse.ArgumentParser(description="Say hello")
    p.add_argument("name", help="who to greet")
    p.add_argument("-s", "--shout", action="store_true", help="uppercase")
    return p


def main(argv: list[str] | None = None) -> int:
    args = build_parser().parse_args(argv)
    print(greet(args.name, shout=args.shout))
    return 0


if __name__ == "__main__":
    sys.exit(main())

Usage:

python hello_cli.py Ada
python hello_cli.py Ada --shout

⚠️ Pitfalls

  • Do not parse sys.argv at import time — keep parsing inside main().
  • Prefer returning an exit code over sys.exit() deep in helpers.
  • print alone is fine for tiny tools; add logging when behavior grows.

On this page