Ich versuche mein Programm mit der Befehlszeilenoption zu verwenden. Hier ist mein Code:
%Vor% Wenn ich versuche, mein Programm vom Terminal aus auszuführen ( python script.py -u
), erwarte ich die Nachricht Starting with upgrade procedure
, aber stattdessen bekomme ich die Fehlermeldung unrecognized arguments -u
.
Der Fehler, den Sie bekommen, ist, weil -u
einen gewissen Wert danach erwartet. Wenn Sie python script.py -h
verwenden, finden Sie es in der Verwendungsbeschreibung mit [-u UPGRADE]
.
Wenn Sie es als boolesches oder Flag verwenden möchten (wahr, wenn -u
verwendet wird), fügen Sie einen zusätzlichen Parameter action
:
action
- Der grundlegende Typ der Aktion, die ausgeführt werden soll, wenn dieses Argument in der Befehlszeile auftritt
Mit action="store_true"
, wenn die Option -u
angegeben ist, wird der Wert True der args.upgrade
zugewiesen. Wenn Sie es nicht angeben, ist das falsch.
Quelle: Python argparse-Dokumentation
Gegenwärtig benötigt Ihr Argument einen Wert, der ebenfalls übergeben wird.
Wenn Sie stattdessen -u
als Option verwenden möchten, verwenden Sie die action='store_true'
für Argumente, die keinen Wert benötigen.
Beispiel -
%Vor%Für boolesche Argumente verwenden Sie action="store_true":
%Vor%Siehe: Ссылка
Tags und Links python command-line