Mettre à jour du code optparse
¶
Originally, the argparse
module had attempted to maintain compatibility
with optparse
. However, optparse
was difficult to extend
transparently, particularly with the changes required to support
nargs=
specifiers and better usage messages. When most everything in
optparse
had either been copy-pasted over or monkey-patched, it no
longer seemed practical to try to maintain the backwards compatibility.
The argparse
module improves on the optparse
module in a number of ways 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.
Le portage partiel d'optparse
à argparse
:
remplacer tous les appels à
optparse.OptionParser.add_option()
par des appels àArgumentParser.add_argument()
;remplacer
(options, args) = parser.parse_args()
parargs = parser.parse_args()
et ajouter des appels àArgumentParser.add_argument()
pour les arguments positionnels. Prenez note que les valeurs précédemment appeléesoptions
sont appeléesargs
dans le contexte d'argparse
;remplacer
optparse.OptionParser.disable_interspersed_args()
en appelantparse_intermixed_args()
plutôt queparse_args()
;remplacer les actions de rappel (callback actions en anglais) et les arguments nommés
callback_*
par des argumentstype
etactions
;remplacer les chaînes représentant le nom des types pour l'argument nommé
type
par les objets types correspondants (par exemple :int
,float
,complex
, etc) ;remplacer
optparse.Values
parNamespace
; etoptparse.OptionError
etoptparse.OptionValueError
parArgumentError
;remplacer les chaînes avec des arguments de formatage implicite (tels que
%default
ou%prog
) par la syntaxe standard de Python pour l'interpolation d'un dictionnaire dans les chaînes de formatage (c'est-à-dire%(default)s
et%(prog)s
) ;remplacer l'argument
version
du constructeur d'OptionParser
par un appel àparser.add_argument('--version', action='version', version='<la version>')
.