HOWTO · Python
Définir le chemin du fichier en Python
Ce tutoriel montre comment définir le chemin du fichier en python.
Sur cette page
Un chemin est une chaîne ou un objet chemin qui identifie l’emplacement d’un fichier ou d’un répertoire. Pour indiquer un chemin Windows en Python, échappez les antislashs ou utilisez une chaîne brute ; pour assembler plusieurs composants, préférez pathlib.Path ou utilisez os.path.join(). Construire un chemin n’ouvre pas de fichier, ne vérifie pas son existence, ne l’exécute pas et ne modifie pas le chemin de recherche des imports de Python.
Échapper les antislashs dans les chaînes de chemin Windows
Dans une chaîne Python ordinaire, un antislash introduit une séquence d’échappement. Doublez chaque antislash d’un chemin Windows, comme dans "C:\\Users\\Ada\\report.csv". Ainsi, des séquences telles que \n ne sont pas interprétées comme des caractères de nouvelle ligne. La forme avec les antislashs doublés est la notation du code source Python ; la chaîne obtenue contient un seul antislash à chaque séparateur.
Utiliser des chaînes brutes pour les chemins Windows
Préfixez un littéral de chaîne avec r pour que Python conserve les antislashs tels quels : r"C:\Users\Ada\report.csv". Une chaîne brute respecte toujours la syntaxe des littéraux de chaîne Python et ne peut pas se terminer par un nombre impair d’antislashs, car le dernier antislash échapperait le guillemet fermant. Si un chemin de répertoire doit se terminer par un séparateur, assemblez-y un autre composant ou utilisez une chaîne ordinaire avec des antislashs échappés.
Assembler des chemins avec os.path.join()
os.path est un module, et os.path.join() est sa fonction pour assembler des composants de chemin. Consultez la documentation de l’API os.path, qui est en anglais : aucune cible française n’est disponible dans l’inventaire fourni. Passez le répertoire et le nom de fichier comme composants distincts, par exemple os.path.join("reports", "annual", "summary.csv"). La fonction applique les conventions de chemin du système d’exploitation en cours d’exécution ; elle ne localise pas un fichier et ne choisit pas de répertoire de projet. Un composant ultérieur absolu peut aussi modifier le résultat : transmettez donc les composants voulus avec soin.
Construire des chemins avec pathlib.Path
Pour construire des chemins courants, pathlib.Path fournit une interface orientée objet. Créez un chemin à partir d’une chaîne, puis ajoutez d’autres composants avec /. Cet exemple utilise un chemin relatif et affiche la valeur construite ; il n’accède pas au fichier. La sortie reproduite affiche ce chemin relatif tel quel, sans le traduire ; sa forme avec des / correspond au résultat d’exécution POSIX. Windows utilise des antislashs pour afficher la même expression Path.
from pathlib import Path
report_path = Path("reports") / "annual" / "summary.csv"
print(report_path)
reports/annual/summary.csv
La forme sous laquelle un chemin est affiché dépend du système d’exploitation. Path représente les chemins selon les conventions de la plateforme actuelle ; utilisez PureWindowsPath pour manipuler des chemins au format Windows sur un autre système d’exploitation sans accéder au système de fichiers.
Construire des chemins absolus
Un chemin absolu identifie un emplacement à partir de la racine d’un système de fichiers. Sous Windows, un exemple avec une lettre de lecteur est Path(r"C:\Users\Ada") / "reports" / "summary.csv" ; cette même forme n’est pas un chemin absolu sur tous les systèmes d’exploitation. Pour un chemin adapté à la plateforme actuelle, partez d’une base absolue connue, telle que Path.home() ou Path.cwd(), puis ajoutez les composants restants. Avec os.path, os.path.join(base, "reports", "summary.csv") assemble les composants, tandis que os.path.abspath(relative_path) résout un chemin relatif par rapport au répertoire de travail actuel du processus. Aucune de ces opérations ne vérifie que la cible existe.
Travailler avec des chemins relatifs
Un chemin relatif désigne un emplacement à partir d’un répertoire de base plutôt que depuis la racine d’un système de fichiers. Par exemple, Path("data") / "input.csv" reste relatif. Lorsqu’un programme utilise un tel chemin pour accéder au système de fichiers, le système d’exploitation l’interprète par rapport au répertoire de travail actuel du processus, sauf si le programme fournit explicitement une autre base. Ce répertoire peut différer de celui qui contient le script Python : choisissez donc une base correspondant à la manière dont le programme est lancé.
Pour construire des chemins relatifs à un répertoire connu, définissez explicitement cette base, puis ajoutez les composants : project_dir / "data" / "input.csv". L’équivalent os.path.join(project_dir, "data", "input.csv") fonctionne avec des chemins sous forme de chaînes. Ces opérations ne font que construire des valeurs de chemin ; utilisez séparément les API de fichiers pour lire, écrire ou vérifier des fichiers.