Étant donné un chemin tel que "mydir/myfile.txt"
comment trouver le chemin absolu du fichier en Python ? Par exemple, sous Windows, je pourrais obtenir ce résultat :
"C:/example/cwd/mydir/myfile.txt"
Étant donné un chemin tel que "mydir/myfile.txt"
comment trouver le chemin absolu du fichier en Python ? Par exemple, sous Windows, je pourrais obtenir ce résultat :
"C:/example/cwd/mydir/myfile.txt"
Note : Sur la plupart des plateformes, ceci est équivalent à l'appel de la fonction normpath()
comme suit : normpath(join(os.getcwd(), path))
. Donc si mydir/myfile.txt
ne sont pas sous os.getcwd()
le chemin absolu est pas le vrai chemin .
@coanor ? Sans une racine explicite, mydir/myfile.txt
fait implicitement référence à un chemin à l'intérieur du répertoire de travail actuel et est donc équivalent à ./mydir/myfile.txt
. Ce n'est peut-être pas le chemin que vous vouliez saisir, mais il semble que ce soit l'interprétation correcte du chemin, d'après ce que je peux voir. Pourriez-vous préciser ?
@jpmc26 Je ne suis pas exactement coanor, mais je dirais que (contrairement à ce que je présumais), il n'y a pas de lien entre l'argument à la abspath
et un fichier réel. Vous pouvez donner n'importe quel nom de chemin - les fichiers inexistants et les hiérarchies de répertoires ne posent pas de problème - et abspath résoudra simplement les éléments du chemin (y compris le répertoire parent " ..
") et renvoie une chaîne de caractères. Il s'agit simplement d'une chaîne de caractères calculée à partir du répertoire actuel ; toute corrélation avec un fichier réel est accidentelle, semble-t-il. Essayez os.path.abspath("/wow/junk/../blha/hooey")
. Cela fonctionne.
Installer une tierce partie module de cheminement (trouvé sur PyPI
), il englobe toutes les os.path
et d'autres fonctions connexes en méthodes sur un objet qui peut être utilisé partout où des chaînes de caractères sont utilisées :
>>> from path import path
>>> path('mydir/myfile.txt').abspath()
'C:\\example\\cwd\\mydir\\myfile.txt'
Aujourd'hui, vous pouvez également utiliser le unipath
qui était basé sur path.py
: http://sluggo.scrapping.cc/python/unipath/
>>> from unipath import Path
>>> absolute_path = Path('mydir/myfile.txt').absolute()
Path('C:\\example\\cwd\\mydir\\myfile.txt')
>>> str(absolute_path)
C:\\example\\cwd\\mydir\\myfile.txt
>>>
Je recommande l'utilisation de ce paquet car il offre une interface propre pour les utilitaires os.path courants .
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.