Question Comment obtenir un chemin de fichier absolu en Python


Étant donné un chemin tel que "mydir/myfile.txt", comment trouver le chemin de fichier absolu relatif au répertoire de travail actuel en Python? Par exemple. sur Windows, je pourrais me retrouver avec:

"C:/example/cwd/mydir/myfile.txt"

491
2017-09-09 10:19


origine


Réponses:


>>> import os
>>> os.path.abspath("mydir/myfile.txt")
'C:/example/cwd/mydir/myfile.txt'

Fonctionne également si c'est déjà un chemin absolu:

>>> import os
>>> os.path.abspath("C:/example/cwd/mydir/myfile.txt")
'C:/example/cwd/mydir/myfile.txt'

702
2017-09-09 10:21



>>> import os
>>> os.path.abspath('mydir/myfile.txt')
'C:\\example\\cwd\\mydir\\myfile.txt'
>>> 

52
2017-09-09 10:28



Vous pouvez utiliser la nouvelle bibliothèque Python 3.4 pathlib. (Vous pouvez également l'obtenir pour Python 2.6 ou 2.7 en utilisant pip install pathlib.) Les auteurs a écrit: "Le but de cette bibliothèque est de fournir une hiérarchie simple de classes pour gérer les chemins de systèmes de fichiers et les opérations courantes que les utilisateurs effectuent sur eux".

Pour obtenir un chemin absolu dans Windows:

>>> from pathlib import Path
>>> p = Path("pythonw.exe").resolve()
>>> p
WindowsPath('C:/Python27/pythonw.exe')
>>> str(p)
'C:\\Python27\\pythonw.exe'

Ou sur UNIX:

>>> from pathlib import Path
>>> p = Path("python3.4").resolve()
>>> p
PosixPath('/opt/python3/bin/python3.4')
>>> str(p)
'/opt/python3/bin/python3.4'

Les documents sont ici: https://docs.python.org/3/library/pathlib.html


48
2017-10-24 01:05



Mieux encore, installez le path.py module, il enveloppe tous les os.path fonctions et autres fonctions connexes dans des méthodes sur un objet qui peut être utilisé partout où des chaînes sont utilisées:

>>> from path import path
>>> path('mydir/myfile.txt').abspath()
'C:\\example\\cwd\\mydir\\myfile.txt'
>>>

22
2017-09-12 06:53



Aujourd'hui, vous pouvez également utiliser le unipath paquet 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 recommanderais d'utiliser ce paquet car il offre une interface propre aux utilitaires os.path courants.


12
2018-03-10 17:11



Je préfère utiliser glob

Voici comment lister tous les types de fichiers dans votre dossier actuel:

import glob
for x in glob.glob():
    print(x)

Voici comment lister tous les fichiers (par exemple) .txt dans votre dossier actuel:

import glob
for x in glob.glob('*.txt'):
    print(x)

voici comment lister tous les types de fichiers dans un répertoire choisi:

import glob
for x in glob.glob('C:/example/hi/hello/'):
    print(x)

J'espère que cela vous a aidé


3
2017-08-07 10:14



si vous êtes sur un mac

import os
upload_folder = os.path.abspath("static/img/users")

cela vous donnera un chemin complet:

print(upload_folder)

montrera le chemin suivant:

>>>/Users/myUsername/PycharmProjects/OBS/static/img/user

0
2018-04-03 21:12



Dans le cas où quelqu'un utilise python et linux et cherche le chemin complet vers le fichier:

>>> path=os.popen("readlink -f file").read()
>>> print path
abs/path/to/file

0
2017-07-04 19:09