Chemin relatif en Python
Dans ce tutoriel, nous discuterons du chemin relatif en Python.
Chemin du fichier en Python
Un chemin de fichier spécifie l’emplacement d’un fichier sur l’ordinateur. Par exemple, C:\PythonProjects\Tutorials\Paths
est le chemin d’un fichier paths.py
dans ma machine Windows. Ici, C:\
est le répertoire racine, et PythonProjects
, Tutorials
et Paths
sont des sous-répertoires. paths.py
est un script python dans le répertoire Paths
dans le répertoire Tutorials
dans le répertoire PythonProjects
dans le répertoire racine C:\
. Il existe deux types de chemins de fichiers en Python, c’est-à-dire les chemins absolus et relatifs.
Différence entre Windows, Mac et Linux
Sur les machines Windows, \
est utilisé comme séparateur entre les noms de répertoire alors que, sur les machines Linux et Mac, /
est utilisé comme séparateur. Par example,
#file path in Windows
rootdirectory\\subdirectory\\subsubdirectory\\filename.extension
#file path in Mac and Linux
rootdirectory/subdirectory/subsubdirectory/filename.extension
Dans Windows, il existe deux barres obliques inverses, car chaque barre oblique inverse doit être échappée à l’aide d’une autre barre oblique inverse. Ceci peut être géré en utilisant la méthode os.path.join()
. Cette méthode gère les séparateurs en fonction du système d’exploitation. Par example,
import os
pathname = os.path.join("root", "directory1", "directory2")
print(pathname)
Production:
#On Windows
root\directory1\directory2
#On Mac and Linux
root/directory1/directory2
Ce tutoriel contiendrait \
comme séparateur pour donner les exemples sous Windows. Nous utiliserons la hiérarchie de fichiers suivante et définirons C:\PythonProjects\Tutorials\Paths
comme répertoire de travail courant.
Répertoire de travail actuel
Le répertoire de travail courant ou cwd
en bref est le répertoire à partir duquel le programme est exécuté. Vous pouvez obtenir le répertoire de travail actuel du fichier particulier par la méthode os.getcwd()
.
import os
print(os.getcwd())
Production:
C:\PythonProjects\Tutorials\Paths
Le répertoire de travail actuel peut également être modifié à l’exécution en utilisant la méthode os.chdir()
.
import os
print("Old cwd = " + os.getcwd())
os.chdir("C:\\PythonProjects\\Tutorials")
print("New cwd = " + os.getcwd())
Production:
Old cwd = C:\PythonProjects\Tutorials\Paths
New cwd = C:\PythonProjects\Tutorials
Chemin absolu
Un chemin absolu d’un fichier est le chemin complet du répertoire racine vers ce fichier particulier. Par exemple, C:\PythonProjects\Tutorials\Paths\paths.py
est le chemin absolu du fichier paths.py
.
Nous pouvons obtenir le chemin absolu du fichier actuel comme indiqué ci-dessous.
import os
absolutepath = os.path.abspath(__file__)
print(absolutepath)
Production:
C:\PythonProjects\Tutorials\Paths\paths.py
Accédez au répertoire Strings
en utilisant le chemin absolu en Python
Naviguer vers un dossier en utilisant le chemin absolu en Python est assez facile. Le seul casse-tête est que vous devez connaître les noms exacts de tous les répertoires du répertoire racine.
import os
print("Old cwd = " + os.getcwd())
os.chdir("C:\\PythonProjects\\Tutorials\\Strings")
print("New cwd = " + os.getcwd())
Chemin relatif
Le chemin absolu est utile, mais il peut devenir très vite complexe. Ainsi, pour minimiser cette complexité, un chemin relatif est utilisé. Chemin relatif signifie le chemin d’un certain fichier par rapport au répertoire de travail actuel.
Par exemple, si le répertoire de travail courant est C:\PythonProjects\Tutorials
alors, le chemin relatif du fichier path.py
serait \Paths\paths.py
qui est plus court et plus facile à utiliser que le chemin absolu C:\PythonProjects\Tutorials\Paths\paths.py
.
Le chemin absolu d’un fichier reste le même partout, mais le chemin relatif change en fonction du répertoire de travail actuel. Ce phénomène est démontré dans l’exemple de codage suivant.
Accédez au répertoire Strings
en utilisant le chemin relatif en Python
Si nous avons besoin d’accéder aux fichiers dans le dossier Strings
, nous devons soit utiliser le chemin absolu complet C:\PythonProjects\Tutorials\Strings\string.py
ou nous pouvons faire comme mentionné dans le code suivant.
import os
import sys
absolutepath = os.path.abspath(__file__)
print(absolutepath)
fileDirectory = os.path.dirname(absolutepath)
print(fileDirectory)
# Path of parent directory
parentDirectory = os.path.dirname(fileDirectory)
print(parentDirectory)
# Navigate to Strings directory
newPath = os.path.join(parentDirectory, "Strings")
print(newPath)
Production:
C:\PythonProjects\Tutorials\Paths\paths.py
C:\PythonProjects\Tutorials\Paths
C:\PythonProjects\Tutorials
C:\PythonProjects\Tutorials\Strings
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn