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.
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))
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__)
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.
Partager