IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

recupérer path du fichier courant


Sujet :

Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 306
    Points : 76
    Points
    76
    Par défaut recupérer path du fichier courant
    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

  2. #2
    Membre éprouvé

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Points : 1 273
    Points
    1 273
    Par défaut
    Utilise la globale __file__, tout simplement*!

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 306
    Points : 76
    Points
    76
    Par défaut
    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/

  4. #4
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    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.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 306
    Points : 76
    Points
    76
    Par défaut
    Parfait c'est ce qu'il me fallait

    merci

  6. #6
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    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)

  7. #7
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    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.

  8. #8
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 817
    Points : 7 110
    Points
    7 110
    Par défaut
    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)

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 43
    Points : 67
    Points
    67
    Par défaut
    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.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    package/
        __init__.py
        subpackage/
            __init__.py
            test.py
    Est-ce que ça afficherai [root]/package/test.py ou [root]/package/subpackage/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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/02/2006, 18h02
  2. Recupération de l'heure courante
    Par Pe04 dans le forum Langage
    Réponses: 5
    Dernier message: 09/01/2006, 16h09
  3. [Fichier] Path du fichier
    Par webbulls dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 23/06/2005, 11h11
  4. [MFC] recupération date modif fichier
    Par Gothico dans le forum MFC
    Réponses: 7
    Dernier message: 21/01/2005, 18h47
  5. [VB.NET] Installation : lire le path du fichier .msi
    Par Berns dans le forum Windows Forms
    Réponses: 3
    Dernier message: 14/09/2004, 22h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo