Ich möchte benutzerdefinierte Fehlermeldungen für bestimmte Verwendungsfehler in meinem Befehlszeilenprogramm generieren, das die argparse
-Bibliothek verwendet. Ich weiß, dass ich die allgemeine Darstellung des Fehlers überschreiben kann, indem ich argparse.ArgumentParser
:
Aber wenn meine error
-Methode aufgerufen wird, wurde message
bereits von der Bibliothek formatiert. Zum Beispiel
Wie kann ich ändern, wie das Zeug nach error:
dargestellt wird, zum Beispiel nach
?
Wenn Sie den Quellcode ansehen, können Sie% co_de übersteuern % Fehlermeldung durch Überschreiben dieser Methode:
%Vor%Wenn Sie alle möglichen Fehlermeldungen überschreiben möchten, müssen Sie dieses Modul grundsätzlich neu schreiben. Alle verschiedenen Fehlermeldungen sind während der verschiedenen Methoden, die jeden Fehlertyp erkennen, vorformatiert.
Wenn Sie @ Gerrats Antwort hinzufügen, wird die Funktion _
als
Es wird das Modul gettext
Ссылка verwendet, um die Internationalisierung zu ermöglichen. Ich bin mit diesem Modul nicht vertraut, aber vermutlich könnten Sie es verwenden, um eine bestimmte Menge an englischen Paraphrasieren auszuführen. Aber vielleicht nicht so viel wie du möchtest.
Fehlermeldungen durchlaufen mehrere Ebenen. Funktionen wie _check_values
schreiben die Basisnachricht. ArgumentError
fügt den Argumentnamen hinzu ( argument subparser:
in Ihrem Beispiel). parser.error
fügt die usage
und prog
hinzu. parser.exit
erledigt den Schritt sys.exit
.
Tags und Links python argparse error-handling