Python

argparse with Subcommands

admin by @admin ADMIN
3d ago
May 31, 2026
Public
0 0 up · 0 down Sign in to vote
Standard-library CLI framework. Subcommands (like `git COMMAND`) require a sub-parser per command, each with its own arguments and handler.
Python
Raw
import argparse
from typing import Callable

def cmd_init(args):  print(f"Initializing in {args.path}")
def cmd_run(args):   print(f"Running with workers={args.workers}, debug={args.debug}")

def main():
    p = argparse.ArgumentParser(prog="myapp", description="A useful CLI tool")
    sub = p.add_subparsers(dest="cmd", required=True)

    pi = sub.add_parser("init", help="Initialize a project")
    pi.add_argument("path")
    pi.set_defaults(func=cmd_init)

    pr = sub.add_parser("run", help="Run the server")
    pr.add_argument("--workers", type=int, default=4)
    pr.add_argument("--debug", action="store_true")
    pr.set_defaults(func=cmd_run)

    args = p.parse_args()
    args.func(args)

if __name__ == "__main__":
    main()
# myapp init /tmp/proj
# myapp run --workers 8 --debug
Tags

Save your own code snippets

Create a free account and build your private vault. Share publicly whenever you want.