ma version python est 2.4.3.comment implémenter les options/arguments pour les fonctions de ligne de commande en python
Maintenant, je développe un CLI avec le module cmd de python pour un lecteur CD. J'ai quelques classes comme CDContainer (avec la méthode comme addCD, removeCD, etc), CD (avec la méthode aiment jouer, arrêt, pause). Maintenant, je veux ajouter quelques options pour les commandes et aussi si les entrées d'options ne sont pas correctes, l'interface de ligne de commande pourrait renvoyer des informations correctes sur le mauvais type d'entrée ou les mauvaises valeurs. Par exemple, je veux avoir "addcd --track 3 - thriller de nom de domaine". ce que je fais maintenant est d'obtenir tous les arguments via, le diviser, et l'assigner aux variables pertinentes, comme suit.
ma question est en python, y a-t-il un module qui est pratique pour analyser et analyser les options ou les arguments dans mon cas?
REVISION: OK, je l'édite, grâce aux commentaires de gclj5.
import cmd
class CDContainerCLI(cmd.Cmd):
def do_addcd(self, line):
args=line.split()
parser = OptionParser()
parser.add_option("-t", "--track", dest="track_number", type="int",
help="track number")
parser.add_option("-n", "--cdname", dest="cd_name", type="string",
help="CD name")
(options, positional_args) = parser.parse_args(args)
cd_obj= CD()
cd_obj.addCD(options.track_number, options.cd_name)
Si possible, pourriez-vous écrire des exemples de code, juste pour montrer comment le faire?
Merci beaucoup !!
salut, gclj5, merci pour votre réponse. J'utilise 2.4.3. J'ai entendu parler de cette optparse, mais je ne sais pas comment l'utiliser avec mon code. par exemple. comment pourrais-je l'intégrer dans la fonction addcd? où et comment devrais-je l'ajouter? – pepero
Je ne connais pas la structure exacte de votre programme, donc je ne peux pas vous dire exactement où l'ajouter. Mais j'ai ajouté quelques exemples de code pour illustrer l'utilisation du paquet optparse. L'idée générale serait de laisser le code d'analyse CLI appeler les fonctions correspondantes avec les options analysées. – gclj5
Salut, gclj5, merci beaucoup pour votre code.c'est args [0:], pas args [1:], parce que, les args sont pris comme entrée pour la méthode. Je révise le code de mon message original. mais il y a encore un problème. Quand il y a quelques exceptions (mauvais type ou option manquante), cette optionparse va quitter pour le programme entier, au lieu de sortir juste pour la méthode appropriée. comment pourrions-nous résoudre cela? – pepero