parser une ligne de commande : problème avec noms génériques de fics - Python - Programmation
Marsh Posté le 03-04-2010 à 11:07:28
En fait, le premier fichier est stocké dans opts, et args est une liste contenant les autres fichiers :
Code :
|
Est-ce le comportement normal ? Je ne comprends pas pourquoi ?
Marsh Posté le 03-04-2010 à 17:26:15
suizokukan a écrit : En fait, le premier fichier est stocké dans opts, et args est une liste contenant les autres fichiers :
|
oui, c'est le shell qui résout ton *, donc quand le python s'exécute, l'étoile a déjà été remplacé par l'ensemble des fichiers jpg du répertoire.
Si tu veux vraiment récupérer *, il faut protéger : python toto.py "/tmp/*.jpg"
Marsh Posté le 05-04-2010 à 10:12:58
> Renaud, merci pour ta réponse, qui répond à ma question.
Je me permets de relancer le sujet avec une question du même type. Mon code est trop permissif :
Code :
|
laisse passer des choses comme :
Code :
|
Les arguments supplémentaires XXX et YYY passent directement dans la variable args, qui contient aussi mes fichiers source; je comprends la présence dans args de XXX qui vient après --source; mais comment faire pour que l'argument YYY déclenche une erreur, puisqu'il n'est pas associé à une option (par exemple ici, il n'est pas associé à --commande) ?
Merci d'avance !
Marsh Posté le 03-04-2010 à 10:54:51
Bonjour,
j'écris en python (2.6) un petit utilitaire en ligne de commande; le format d'entrée est :
(je travaille sour Linux)
Quand je parse la ligne de commande avec le module optparse, ~/rep1/rep2/*.jpg est toujours remplacé par le nom du premier fichier ayant l'extention "jpg". Voici mon code :
... et opts.source ne vaut pas "~/rep1/rep2/*.jpg" mais qqc comme "~/rep1/rep2/1234.jpg".
Malgré la doc' je ne m'en sors pas. Pourriez-vous m'aider ?
Merci d'avance !
---------------
rule #1 : trust the python