Python argparse: “non reconnus”arguments
Je suis en train d'utiliser mon programme avec l'option de ligne de commande. Voici mon code:
import argparse
def main():
parser = argparse.ArgumentParser()
parser.add_argument("-u","--upgrade", help="fully automatized upgrade")
args = parser.parse_args()
if args.upgrade:
print "Starting with upgrade procedure"
main()
Lorsque j'essaie d'exécuter mon programme de terminal (python script.py -u
), je m'attends à recevoir le message Starting with upgrade procedure
, mais au lieu de cela, je reçois le message d'erreur unrecognized arguments -u
.
Je ne suis pas à voir un message d'erreur et je suis l'obtention de votre expecpted de sortie; je pense qu'il pourrait être en raison de l'espace, la tabulation dans votre programme, Veuillez vérifier que [viswesn.viswesn-PC] ➤ python script.py -u 10 en Commençant par la procédure de mise à [viswesn.viswesn-PC] ➤ python script.py -u utilisation: script.py [-h] [-u UPGRADE] script.py: erreur: argument -u/--mise à jour: attend un argument
Le seul problème ici, est que
Le seul problème ici, est que
-u
, s'attendent à une valeur ou une certaine sorte. essayez de faire python myscript.py -u True
OriginalL'auteur Zvonimir Peran | 2015-07-17
Vous devez vous connecter pour publier un commentaire.
L'erreur que vous obtenez est parce que
-u
s'attend à une certaine valeur, d'après elle. Si vous utilisezpython script.py -h
vous le trouverez dans l'utilisation de la déclaration en disant[-u UPGRADE]
.Si vous voulez l'utiliser comme booléen ou un drapeau (vrai si
-u
est utilisé), ajouter un paramètre supplémentaireaction
:action
- Le type de base de l'action à entreprendre lorsque cet argument est rencontré à la ligne de commandeAvec
action="store_true"
, si l'option-u
est spécifié, la valeur True est affectée àargs.upgrade
. Ne pas préciser qu'il implique Faux.Source: Python argparse documentation
OriginalL'auteur Rakholiya Jenish
Actuellement, votre position doit être adoptées pour elle aussi.
Si vous voulez
-u
comme une option au lieu de cela, Utilisez laaction='store_true'
pour les arguments n'ont pas besoin d'une valeur.Exemple -
OriginalL'auteur Anand S Kumar
Booléenne arguments utiliser action="store_true":
Voir: https://docs.python.org/2/howto/argparse.html#introducing-optional-arguments
OriginalL'auteur Nitesh Patel