Python argparse: "unerkannte Argumente"

8

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 .

    
Zvonimir Peran 17.07.2015, 06:46
quelle

3 Antworten

9

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 :

hinzu %Vor%

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

    
Rakholiya Jenish 17.07.2015, 06:54
quelle
3

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%     
Anand S Kumar 17.07.2015 06:55
quelle
2

Für boolesche Argumente verwenden Sie action="store_true":

%Vor%

Siehe: Ссылка

    
Nitesh Patel 17.07.2015 06:59
quelle

Tags und Links