Migrating optparse code to argparse

The argparse module offers several higher level features not natively provided by the optparse module, including:

  • gère les arguments positionnels ;

  • Supporting subcommands.

  • permet d'utiliser les alternatives + ou / comme préfixes d'option ;

  • prend en charge la répétition de valeurs (zéro ou plus, un ou plus) ;

  • fournit des messages d'aide plus complets ;

  • fournit une interface plus simple pour les types et les actions personnalisés.

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: