Migrating optparse code to argparse¶
The argparse module offers several higher level features not natively
provided by the optparse module, including:
Handling positional arguments.
Supporting subcommands.
Allowing alternative option prefixes like + and /.
Handling zero-or-more and one-or-more style arguments.
Producing more informative usage messages.
Providing a much simpler interface for custom type and action.
Originally, the argparse module attempted to maintain compatibility
with optparse. However, the fundamental design differences between
supporting declarative command line option processing (while leaving positional
argument processing to application code), and supporting both named options
and positional arguments in the declarative interface mean that the
API has diverged from that of optparse over time.
As described in Choosing an argument parsing library, applications that are
currently using optparse and are happy with the way it works can
just continue to use optparse.
Application developers that are considering migrating should also review
the list of intrinsic behavioural differences described in that section
before deciding whether or not migration is desirable.
For applications that do choose to migrate from optparse to argparse,
the following suggestions should be helpful:
©
Copyright 2001 Python Software Foundation.
This page is licensed under the Python Software Foundation License Version 2.
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
See
History and License for more information.
The Python Software Foundation is a non-profit corporation.
Please donate.
Last updated on Nov 12, 2026 (16:03 UTC).
Found a bug?
Created using
Sphinx 9.1.1.