Réponses:
La clé ici est l' nameattribut de l' fobjet représentant le fichier ouvert. Vous obtenez comme ça:
>>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> f.name
'/Users/Desktop/febROSTER2012.xls'
Aide-t-il?
tempfilemodule, en particulier pour tempfile.NamedTemporaryFile, juste en dessous de la documentation que tempfile.TemporaryFilevous avez mentionnée. C'est un cas particulier pour le fichier temporaire et, comme vu dans la documentation, il existe déjà une solution. tempfile.TemporaryFilen'est pas destiné à être utilisé au cas où vous voudriez lire le nom.
J'ai eu exactement le même problème. Si vous utilisez un chemin relatif, os.path.dirname (chemin) ne renverra que le chemin relatif. os.path.realpath fait l'affaire:
>>> import os
>>> f = open('file.txt')
>>> os.path.realpath(f.name)
os.path.realpathje renverrai «~ / text.txt» au lieu de «~ / Documents / text.txt».
Et si vous voulez simplement obtenir le nom du répertoire et que vous n'avez pas besoin du nom de fichier qui l'accompagne, vous pouvez le faire de la manière conventionnelle suivante en utilisant osle module Python.
>>> import os
>>> f = open('/Users/Desktop/febROSTER2012.xls')
>>> os.path.dirname(f.name)
>>> '/Users/Desktop/'
De cette façon, vous pouvez obtenir la structure des répertoires.
f = open('febROSTER2012.xls'). Comment pouvez-vous accéder au chemin complet?
Vous pouvez aussi l'obtenir comme ça.
filepath = os.path.abspath(f.name)
tempfile.TemporaryFile(mode='w', prefix='xxx', suffix='.txt')ne fonctionne pas!