Sys.argv d'ou vient argv?
Résolu
sbg
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis en phase d'apprentissage en Python et j'essaye d'évoluer d'une façon autonome, c.a.d. une fois les notions de base acquises trouver mes solutions en na vigant dans le monde Python (à l'instar de ce qu'on fait à l'aide du man dans Unix). Or, j'ai bcp de mal a trouver la logique que nous permet d'"enquêter qui est qui" dans le monde Python.
L'exemple ci-dessous illustre cela:
>>> import sys
>>> dir('sys')
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
>>> for arg in sys.argv: print arg
...
py_quicklook.py
-p
bef
-e
(...)
Démarche/question (dites moi qu'est-ce que vas pas dans mon raisonnement):
- Je comprends (?!) que "sys" est un package comprenant des modules;
- Par ailleurs, je comprends que "tout est un objet dans Python";
- J'utilise donc dir('') pour connaître les attributs et methodes liées à cet objet, en pensant que les methodes/functions sont les "calls des modules".
Or, je n'ai rien que montre que je peux "faire appel" à "argv" ?!...
En espérant avoir été claire et concise.
Un grand merci d'avance,
S.
Je suis en phase d'apprentissage en Python et j'essaye d'évoluer d'une façon autonome, c.a.d. une fois les notions de base acquises trouver mes solutions en na vigant dans le monde Python (à l'instar de ce qu'on fait à l'aide du man dans Unix). Or, j'ai bcp de mal a trouver la logique que nous permet d'"enquêter qui est qui" dans le monde Python.
L'exemple ci-dessous illustre cela:
>>> import sys
>>> dir('sys')
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
>>> for arg in sys.argv: print arg
...
py_quicklook.py
-p
bef
-e
(...)
Démarche/question (dites moi qu'est-ce que vas pas dans mon raisonnement):
- Je comprends (?!) que "sys" est un package comprenant des modules;
- Par ailleurs, je comprends que "tout est un objet dans Python";
- J'utilise donc dir('') pour connaître les attributs et methodes liées à cet objet, en pensant que les methodes/functions sont les "calls des modules".
Or, je n'ai rien que montre que je peux "faire appel" à "argv" ?!...
En espérant avoir été claire et concise.
Un grand merci d'avance,
S.
A voir également:
- Sys.argv d'ou vient argv?
- Comment savoir qui vient voir mon profil facebook - Guide
- Votre envoi vient de quitter son pays d'expédition - Forum Consommation & Internet
- Yasmine vient d'installer une application lampe de poche - Forum Sony
- Facebook ce problème vient généralement du fait que le propriétaire - Forum Facebook
- Facebook - Qui me bloque ? ✓ - Forum Facebook
4 réponses
Je ne suis pas un spécialiste Python mais je crois que tout n'est pas objet dans Python, loin de là, il y a un savant mélange de procédural et objet
en l'occurence sys.argv est une liste, liste de paramètres passé au système lors de l'appel d'un script python genre
python script.py toto tata
voir ici https://docs.python.org/3/library/sys.html
en l'occurence sys.argv est une liste, liste de paramètres passé au système lors de l'appel d'un script python genre
python script.py toto tata
voir ici https://docs.python.org/3/library/sys.html
Bonjour,
Or, je n'ai rien que montre que je peux "faire appel" à "argv" ?!...
Normal, tu as fait dir('sys') ce qui équivalent à dir(str) puisque 'sys' est un string.
Tu voulais faire dir(sys) qui là retournera tous les attributs et méthodes du module sys. Et tu auras le fameux argv ;-))).
Cdlt,
Or, je n'ai rien que montre que je peux "faire appel" à "argv" ?!...
Normal, tu as fait dir('sys') ce qui équivalent à dir(str) puisque 'sys' est un string.
Tu voulais faire dir(sys) qui là retournera tous les attributs et méthodes du module sys. Et tu auras le fameux argv ;-))).
Cdlt,
Merci pour votre réactivité. Votre réponse me fait progresser.
Toutefois en essence ma question est:
Comment connaître ce dont je dispose (function/methode), ici = "argv" dans la boite "sys"?
Un autre exemple,
>>>import matplotlib.pyplot as mpl
>>> dir('mpl')
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
je comprends que les fonctions dont je dispose sont celles ennonces... mais non, il y (plein) d'autres:
mpl.subplots_adjust
mpl.figtext
mpl.savefig
...
Mais comment les trouver?!!!
Toutefois en essence ma question est:
Comment connaître ce dont je dispose (function/methode), ici = "argv" dans la boite "sys"?
Un autre exemple,
>>>import matplotlib.pyplot as mpl
>>> dir('mpl')
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']
je comprends que les fonctions dont je dispose sont celles ennonces... mais non, il y (plein) d'autres:
mpl.subplots_adjust
mpl.figtext
mpl.savefig
...
Mais comment les trouver?!!!
En python tout est objet.
en l'occurence sys.argv est une liste, liste de paramètres passé au système lors de l'appel d'un script python genre
python script.py toto tata
Oui, et donc cela devrait être restitué par la fonction dir : l'objet de la question ^^.