Bonjour,
j'aimerai savoir s'il existe un moyen de récupèrer le path de son fichier .py dans lequel on se trouve.
merci
Bonjour,
j'aimerai savoir s'il existe un moyen de récupèrer le path de son fichier .py dans lequel on se trouve.
merci
Utilise la globale __file__, tout simplement*!
Merci mais quand je fais un print de ___file___
j'ai juste le nom du fichier et pas son chemin complet
Or il se trouve dans /home/user/Desktop/
Bonjour,
Je dirais sys.path[0] si c'est le py qui appelle l'interpréteur Python (pas en interactif mai dans le script donc). Après avec les frames.
@+
Edit: Il me semble qu'il y a bien plus simple mais je ne m'en souviens pas ce soir.
Merci d'utiliser le forum pour les questions techniques.
Bonjour,
Je tenterais quelque chose comme ça:
Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 #python 3.x : pour le print() import os dir_path = os.path.dirname(os.path.abspath(__file__)) print(dir_path)
Maintenant si c'est pour savoir ou est (pour l'interpréteur) le script à un moment donné: os.getcwd()
Bien sur c'est sujet aux changements de chemin dans le script (os.chdir(chemin))
Merci d'utiliser le forum pour les questions techniques.
J'ai compris comme pausekawa, le fichier py du répertoire courant
Code : Sélectionner tout - Visualiser dans une fenêtre à part os.path.join(os.getcwd(), __file__)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Bonsoir,
Je viens de remarquer quelque-chose d'intéressant. Sur Windows, selon la manière dont le script suivant est appelé, __file__ sera soit un chemin relatif soit un chemin absolut :
Code python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 # test.py print(__file__)
Si j'appel le script test.py sans passer par la commande python (car il faut savoir qu'avec Windows le fichiers .py sont des exécutables associés à python.exe) voilà ce qu'il m'affiche :
Code console : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 C:\Etudes>test.py C:\Etudes\test.py
Alors que si j'utilise la commande python :
Code console : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 C:\Etudes>set path=%path%;C:\Python32 C:\Etudes>python test.py test.py
Voilà, j'avoue ne pas avoir encore cherché la raison de cette différence (surtout que j'ai un peu la flem ce soir et que je n'ai pas de Windows sous la main) mais c'est bon à savoir.
À part ça, je me demande aussi comment réagirai la méthode os.path.abspath(__file__) appelé dans un fichier contenu dans un sous-package.
Est-ce que ça afficherai [root]/package/test.py ou [root]/package/subpackage/test.py ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 package/ __init__.py subpackage/ __init__.py test.py
Encore une question du à ma flem du soir, mais qui peut peut-être en soulever d'autres plus intéressantes...
Voilà. Si personne ne se sent plus vaillant que moi, d'ici demain, pour faire l'essai; je ramasserai le poil de ma main qui balaye le sol et j'éditerai ce message avec mes impressions.
Sur ce, bonsoir.
-*-*-*-*-*-*-*-*-*-*-
[edit]
Bon, je n'ai pas trouvé exactement les raisons de la différence que j'avais évoqué sur la valeur de __file__, si ce n'est que cet objet est généré dynamiquement à chaque import par un espèce de __loader__... Je n'ai pas cherché plus loin, en tous cas je garde la remarque dans un coin de ma tête.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager