The argparse module offers several higher level features not natively provided by the optparse module, including:
+ and /.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:
optparse.OptionParser.add_option() calls with ArgumentParser.add_argument() calls.(options, args) = parser.parse_args() with args =
parser.parse_args() and add additional ArgumentParser.add_argument() calls for the positional arguments. Keep in mind that what was previously called options, now in the argparse context is called args.optparse.OptionParser.disable_interspersed_args() by using parse_intermixed_args() instead of parse_args().callback_* keyword arguments with type or action arguments.type keyword arguments with the corresponding type objects (e.g. int, float, complex, etc).optparse.Values with Namespace and optparse.OptionError and optparse.OptionValueError with ArgumentError.%default or %prog with the standard Python syntax to use dictionaries to format strings, that is, %(default)s and %(prog)s.version argument with a call to parser.add_argument('--version', action='version', version='<the version>').
© 2001–2025 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.14/howto/argparse-optparse.html