Je cherche à savoir dans quel répertoire est installé mon script python.
J'ai cherché dans les modules os et sys mais sans succès.
Pour être clair :
J'ai un script python /home/toto/bin/script.py
Je voudrais récupérer /home/toto/bin.
Or avec os.getcwd(), je récupère le répertoire dans lequel je suis
quand je lance le script (ie si je suis dans /home/toto et que je tape
bin/script.py, os.getcwd() me reverra/home/toto).
Je peux bidouiller avec sys.argv[0] et os.getcwd() mais je pense qu'il y a
quelque chose de beaucoup plus simple que je n'ai pas vu ?
Ta solution fonctionne très bien sous XP. En fait, est donne la même chose que la mienne.
__file__ , sous XP, donne l'ensemble (Path_absolu + nom_du_script) ; et cela, que l'on soit dans le répertoire, dans le parent, dans un enfant, ou avec un appel du genre .script.py
J'ai déjà eu des différences avec le module glob, qui sous windows, ne fonctionne pas comme attendu (mais, ça, c'est marqué dans la doc).
Je suis intéressé pour (a)voir/participer (à) une liste des "variations" de comportement de Python (et des librairies), entre différents OS ; à condition que l'on se contente de les lister, en évitant des trolls de jugement.
@-salutations
Michel Claveau
Bonsoir !
Ta solution fonctionne très bien sous XP. En fait, est donne la même chose
que la mienne.
__file__ , sous XP, donne l'ensemble (Path_absolu + nom_du_script) ; et
cela, que l'on soit dans le répertoire, dans le parent, dans un enfant, ou
avec un appel du genre .script.py
J'ai déjà eu des différences avec le module glob, qui sous windows, ne
fonctionne pas comme attendu (mais, ça, c'est marqué dans la doc).
Je suis intéressé pour (a)voir/participer (à) une liste des "variations" de
comportement de Python (et des librairies), entre différents OS ; à
condition que l'on se contente de les lister, en évitant des trolls de
jugement.
Ta solution fonctionne très bien sous XP. En fait, est donne la même chose que la mienne.
__file__ , sous XP, donne l'ensemble (Path_absolu + nom_du_script) ; et cela, que l'on soit dans le répertoire, dans le parent, dans un enfant, ou avec un appel du genre .script.py
J'ai déjà eu des différences avec le module glob, qui sous windows, ne fonctionne pas comme attendu (mais, ça, c'est marqué dans la doc).
Je suis intéressé pour (a)voir/participer (à) une liste des "variations" de comportement de Python (et des librairies), entre différents OS ; à condition que l'on se contente de les lister, en évitant des trolls de jugement.
@-salutations
Michel Claveau
bruno modulix
Do Re Mi chel La Si Do wrote:
Bonsoir !
Ta solution fonctionne très bien sous XP. En fait, est donne la même chose que la mienne.
__file__ , sous XP, donne l'ensemble (Path_absolu + nom_du_script) ; et cela, que l'on soit dans le répertoire, dans le parent, dans un enfant, ou avec un appel du genre .script.py
Ok. Sous Linux, __file__ retourne un chemin relatif - ou, plus exactement, le chemin par lequel on a lancé le script.
# en local ~/playground $ ./chemin.py __file__ : ./chemin.py os.path.abspath(__file__) : /home/bruno/playground/chemin.py os.path.realpath(__file__) : /home/bruno/playground/chemin.py
# depuis un sous-répertoire ~/playground $ cd bash/ ~/playground/bash $ ../chemin.py __file__ : ../chemin.py os.path.abspath(__file__) : /home/bruno/playground/chemin.py os.path.realpath(__file__) : /home/bruno/playground/chemin.py
# depuis le répertoire parent ~/playground $ cd ../.. ~ $ playground/chemin.py __file__ : playground/chemin.py os.path.abspath(__file__) : /home/bruno/playground/chemin.py os.path.realpath(__file__) : /home/bruno/playground/chemin.py
# depuis un autre répertoire ~ $ cd docs ~/docs $ ../playground/chemin.py __file__ : ../playground/chemin.py os.path.abspath(__file__) : /home/bruno/playground/chemin.py os.path.realpath(__file__) : /home/bruno/playground/chemin.py
# en passant le chemin complet: ~/playground/bash $ cd ~ $ /home/bruno/playground/chemin.py __file__ : /home/bruno/playground/chemin.py os.path.abspath(__file__) : /home/bruno/playground/chemin.py os.path.realpath(__file__) : /home/bruno/playground/chemin.py
Peux-tu faire le même test sous XP, stp ?
J'ai déjà eu des différences avec le module glob, qui sous windows, ne fonctionne pas comme attendu (mais, ça, c'est marqué dans la doc).
Ca peut quand même valoir le coup de redonder l'info dans le wiki, pour ceux qui ne Relisent pas le Très Fameux Manuel(tm).
Je suis intéressé pour (a)voir/participer (à) une liste des "variations" de comportement de Python (et des librairies), entre différents OS ;
Bon bin on a déjà un exemple à mettre dans le Wiki. Tu t'en charge ou bien je ?
à condition que l'on se contente de les lister, en évitant des trolls de jugement.
<mode="hypocrite"> Moi, troller ? Jamais !-) </mode>
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
Do Re Mi chel La Si Do wrote:
Bonsoir !
Ta solution fonctionne très bien sous XP. En fait, est donne la même chose
que la mienne.
__file__ , sous XP, donne l'ensemble (Path_absolu + nom_du_script)
; et
cela, que l'on soit dans le répertoire, dans le parent, dans un enfant, ou
avec un appel du genre .script.py
Ok. Sous Linux, __file__ retourne un chemin relatif - ou, plus
exactement, le chemin par lequel on a lancé le script.
Ta solution fonctionne très bien sous XP. En fait, est donne la même chose que la mienne.
__file__ , sous XP, donne l'ensemble (Path_absolu + nom_du_script) ; et cela, que l'on soit dans le répertoire, dans le parent, dans un enfant, ou avec un appel du genre .script.py
Ok. Sous Linux, __file__ retourne un chemin relatif - ou, plus exactement, le chemin par lequel on a lancé le script.
# en local ~/playground $ ./chemin.py __file__ : ./chemin.py os.path.abspath(__file__) : /home/bruno/playground/chemin.py os.path.realpath(__file__) : /home/bruno/playground/chemin.py
# depuis un sous-répertoire ~/playground $ cd bash/ ~/playground/bash $ ../chemin.py __file__ : ../chemin.py os.path.abspath(__file__) : /home/bruno/playground/chemin.py os.path.realpath(__file__) : /home/bruno/playground/chemin.py
# depuis le répertoire parent ~/playground $ cd ../.. ~ $ playground/chemin.py __file__ : playground/chemin.py os.path.abspath(__file__) : /home/bruno/playground/chemin.py os.path.realpath(__file__) : /home/bruno/playground/chemin.py
# depuis un autre répertoire ~ $ cd docs ~/docs $ ../playground/chemin.py __file__ : ../playground/chemin.py os.path.abspath(__file__) : /home/bruno/playground/chemin.py os.path.realpath(__file__) : /home/bruno/playground/chemin.py
# en passant le chemin complet: ~/playground/bash $ cd ~ $ /home/bruno/playground/chemin.py __file__ : /home/bruno/playground/chemin.py os.path.abspath(__file__) : /home/bruno/playground/chemin.py os.path.realpath(__file__) : /home/bruno/playground/chemin.py
Peux-tu faire le même test sous XP, stp ?
J'ai déjà eu des différences avec le module glob, qui sous windows, ne fonctionne pas comme attendu (mais, ça, c'est marqué dans la doc).
Ca peut quand même valoir le coup de redonder l'info dans le wiki, pour ceux qui ne Relisent pas le Très Fameux Manuel(tm).
Je suis intéressé pour (a)voir/participer (à) une liste des "variations" de comportement de Python (et des librairies), entre différents OS ;
Bon bin on a déjà un exemple à mettre dans le Wiki. Tu t'en charge ou bien je ?
à condition que l'on se contente de les lister, en évitant des trolls de jugement.
<mode="hypocrite"> Moi, troller ? Jamais !-) </mode>
-- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in ''.split('@')])"
Do Re Mi chel La Si Do
Bonsoir !
Vas-y, met ta prose sur le Wiki. Je suis trop débordé en ce moment, et j'ai toujours eu beaucoup de mal à y poster quelque chose (je n'ai réussi qu'une seule fois).
Pour les tests, il faudra attendre un peu ; car je suis vraiment débordé.
@-salutations
Michel Claveau
PS : si quelqu'un se sent d'attaque, il pourrait s'inscrire, dimanche, pour le 18e critérium du Rhône, une épreuve de canoë kayak (descente régionale et coupe des jeunes). Inscription en ligne, sur un serveur web Python maison (dérivé, mais largement modifié, des exemples d'utilisation d'asyncore, dans le cookbook)
Bonsoir !
Vas-y, met ta prose sur le Wiki. Je suis trop débordé en ce moment, et j'ai
toujours eu beaucoup de mal à y poster quelque chose (je n'ai réussi qu'une
seule fois).
Pour les tests, il faudra attendre un peu ; car je suis vraiment débordé.
@-salutations
Michel Claveau
PS : si quelqu'un se sent d'attaque, il pourrait s'inscrire, dimanche, pour
le 18e critérium du Rhône, une épreuve de canoë kayak (descente régionale et
coupe des jeunes).
Inscription en ligne, sur un serveur web Python maison (dérivé, mais
largement modifié, des exemples d'utilisation d'asyncore, dans le cookbook)
Vas-y, met ta prose sur le Wiki. Je suis trop débordé en ce moment, et j'ai toujours eu beaucoup de mal à y poster quelque chose (je n'ai réussi qu'une seule fois).
Pour les tests, il faudra attendre un peu ; car je suis vraiment débordé.
@-salutations
Michel Claveau
PS : si quelqu'un se sent d'attaque, il pourrait s'inscrire, dimanche, pour le 18e critérium du Rhône, une épreuve de canoë kayak (descente régionale et coupe des jeunes). Inscription en ligne, sur un serveur web Python maison (dérivé, mais largement modifié, des exemples d'utilisation d'asyncore, dans le cookbook)