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
| Piece | Role |
|---|---|
ArgumentParser | Define CLI interface |
| Positional arg | Required name |
store_true | Optional --shout flag |
main() + exit code | Testable 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.argvat import time — keep parsing insidemain(). - Prefer returning an exit code over
sys.exit()deep in helpers. printalone is fine for tiny tools; add logging when behavior grows.