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 :

os.path.basename() sous Windows


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 103
    Par défaut os.path.basename() sous Windows
    Bonjour,

    je cherche à afficher tout simplement le nom du fichier (sans le chemin) sélectionné par l' utilisateur après un "open". J ' ai trouvé "os.path.basename", super !!
    Je le teste ici avec print pour voir :
    - lorsque je mets des guillemets dans os.path.basename('le_fichier_re') il m' affiche "le_fichier_re" au lieu du nom du fichier lui même.
    - lorsque je les enlève il renvoie l' erreur :

    print os.path.basename(le_fichier_re)
    File "C:\Program Files\Python25\lib\ntpath.py", line 200, in basename
    return split(p)[1]
    File "C:\Program Files\Python25\lib\ntpath.py", line 164, in split
    d, p = splitdrive(p)
    File "C:\Program Files\Python25\lib\ntpath.py", line 119, in splitdrive
    if p[1:2] == ':':
    TypeError: 'file' object is unsubscriptable



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import os.path
    ...
    le_fichier_re = open(sel_fichier,'w')
    print os.path.basename('le_fichier_re')
    ...
    Toutes mes recherches aboutissent à des ex. qui ne l' utilisent pas après un "open" comme moi. Rien trouvé sur google.

    Encore un piège Python pour pourrir la vie des débutants ;-))

    MERCI pour tte info !!

  2. #2
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    pas sûr que tu puisses faire ce que tu veux

    le mieux est de conserver une trace du nom du fichier et de faire ensuite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print os.path.basename(sel_fichier)

  3. #3
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 103
    Par défaut
    Ahh oui , cà cà marche en tout cas !
    MERCI !!
    Bye

  4. #4
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Je sais pas si j'ai compris ce que tu veux, mais essaye ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    f = open('test.txt', 'w')
    print f.name

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2007
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 103
    Par défaut
    Citation Envoyé par pacificator Voir le message
    Je sais pas si j'ai compris ce que tu veux, mais essaye ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    f = open('test.txt', 'w')
    print f.name
    Non, je suis obligé de passer par "os.path.basename" parce que je ne veux pas le chemin, mais uniquement le nom du fichier ...

    Bye

  6. #6
    Membre Expert Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    >>> f = open('test.txt', 'w')
    >>> print f.name
    test.txt
    >>> f = open('D:\\test\\test.txt', 'w')
    >>> f.name
    'D:\\test\\test.txt'
    >>> os.path.basename(f.name)
    'test.txt'

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

Discussions similaires

  1. exec() ne tient par compte de PATH sous Windows?
    Par FrankOVD dans le forum Langage
    Réponses: 4
    Dernier message: 13/03/2012, 16h37
  2. Réponses: 3
    Dernier message: 11/11/2010, 17h54
  3. os.path.join sous Windows
    Par Bayard dans le forum Général Python
    Réponses: 2
    Dernier message: 08/11/2007, 06h57
  4. Réponses: 1
    Dernier message: 07/08/2006, 12h04
  5. OmniORB : code sous Windows et Linux
    Par debug dans le forum CORBA
    Réponses: 2
    Dernier message: 30/04/2002, 17h45

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