Python argument de ligne de commande affecter à une variable
J'ai de stocker l'argument de ligne de commande dans une variable ou d'attribuer une valeur par défaut pour elle.
Ce que je suis en train est le ci-dessous
import sys
Var=sys.argv[1] or "somevalue"
J'obtiens l'erreur de l'indice de si je ne spécifiez pas d'argument. Comment résoudre ce problème?
- Peut-être utiliser une approche plus structurée, voir stackoverflow.com/questions/1009860/...
- En principe oui, mais c'est overkill pour ce scénario, vous ne pensez pas?
- Peut-être. Nous ne voyons pas l'ensemble du contexte.
Vous devez vous connecter pour publier un commentaire.
Bonne question.
Je pense que la meilleure solution serait de faire
La builtin argparse module est prévu pour ces sortes de tâches:
Ou, si vous êtes coincé avec Python 2.6 ou version antérieure, et ne souhaitez pas ajouter une exigence sur le rétroportage module argparse, vous pouvez faire la même chose manuellement comme suit:
opter.add_option('--var', default="somevalue")
? Voir ma réponse.Essayez ce qui suit une ligne de commande-traitement modèle:
De course
./your_script.py
avec le modèle ci-dessous et de vos modifications ci-dessus imprime{'var': 'somevalue'} []
Pour un exemple de ligne de commande-traitement modèle de voir un exemple dans Code Comme un Pythonista: Idiomatiques Python (http://python.net/~goodger/projets/pycon/2007/idiomatiques/document.html#ligne de commande-traitement):