Je veux obtenir le chemin du répertoire du fichier actuel.
J'ai essayé:
>>> os.path.abspath(__file__)
'C:\\python27\\test.py'
Mais comment puis-je récupérer le chemin du répertoire? Par exemple:
'C:\\python27\\'
Si vous voulez dire le répertoire du script en cours d'exécution:
import os
os.path.dirname(os.path.abspath(__file__))
Si vous voulez parler du répertoire de travail actuel:
import os
os.getcwd()
Notez qu'avant et après file
, il y a deux traits de soulignement, pas un seul.
Notez également que si vous exécutez de manière interactive ou avez du code chargé à partir d'un élément autre qu'un fichier (par exemple, une base de données ou une ressource en ligne), __file__
peut ne pas être défini car il n'existe aucune notion de "fichier actuel". La réponse ci-dessus suppose le scénario le plus courant consistant à exécuter un script python figurant dans un fichier.
En Python 3:
from pathlib import Path
mypath = Path().absolute()
print(mypath)
import os
print os.path.dirname(__file__)
Vous pouvez utiliser les bibliothèques os
et os.path
facilement comme suit
import os
os.chdir(os.path.dirname(os.getcwd()))
os.path.dirname
renvoie le répertoire supérieur du répertoire actuel. Il nous permet de passer à un niveau supérieur sans passer aucun argument de fichier ni connaître le chemin absolu.
PROPRIÉTÉS DE CHEMIN UTILES À PYTHON:
from pathlib import Path
#Returns the path of the directory, where your script file is placed
mypath = Path().absolute()
print('Absolute path : {}'.format(mypath))
#if you want to go to any other file inside the subdirectories of the directory path got from above method
filePath = mypath/'data'/'fuel_econ.csv'
print('File path : {}'.format(filePath))
#To check if file present in that directory or Not
isfileExist = filePath.exists()
print('isfileExist : {}'.format(isfileExist))
#To check if the path is a directory or a File
isadirectory = filePath.is_dir()
print('isadirectory : {}'.format(isadirectory))
#To get the extension of the file
fileExtension = mypath/'data'/'fuel_econ.csv'
print('File extension : {}'.format(filePath.suffix))
SORTIE: CHEMIN ABSOLU IS LE CHEMIN O VOS FICHIERS PYTHON IS PLACED
Chemin absolu: D:\Etude\Apprentissage\Bloc-notes Jupitor\JupytorNotebookTest2\Udacity_Scripts\Matplotlib et seaborn Part2
Chemin du fichier: D:\Etude\Apprentissage\Jupitor Notebook\JupytorNotebookTest2\Udacity_Scripts\Matplotlib et seaborn Part2\data\fuel_econ.csv
isfileExist: True
isadirectory: False
Extension de fichier: .csv
J'ai créé une fonction à utiliser lors de l'exécution de python sous IIS dans CGI afin d'obtenir le dossier actuel:
import os
def getLocalFolder():
path=str(os.path.dirname(os.path.abspath(__file__))).split('\\')
return path[len(path)-1]
Pour conserver la cohérence de la migration sur toutes les plateformes (macOS/Windows/Linux), essayez les solutions suivantes:
path = r'%s' % os.getcwd().replace('\\','/')
IPython
a une commande magique %pwd
pour obtenir le répertoire de travail actuel. Il peut être utilisé de la manière suivante:
from IPython.terminal.embed import InteractiveShellEmbed
ip_Shell = InteractiveShellEmbed()
present_working_directory = ip_Shell.magic("%pwd")
Sur IPython, Jupyter Notebook %pwd
peut être utilisé directement comme suit:
present_working_directory = %pwd
Essaye ça:
import os
dir_path = os.path.dirname(os.path.realpath(__file__))
Système: MacOS
Version: Python 3.6 avec Anaconda
import os
rootpath = os.getcwd()
os.chdir(rootpath)
En Python 3.x je fais:
from pathlib import Path
path = Path(__file__).parent.absolute()
Explication:
Path(__file__)
est le chemin du fichier actuel..parent
vous donne le répertoirele fichier est dans..absolute()
vous donne le full absolu chemin d'accès.Utiliser pathlib
est la manière moderne de travailler avec des chemins. Si vous en avez besoin ultérieurement sous forme de chaîne pour une raison quelconque, il suffit de faire str(path)
.