Code source : Lib/posixpath.py (pour POSIX) andLib/ntpath.py (pour Windows NT).
Ce module implémente certaines fonctions utiles sur les noms de chemin. Pour lire ou écrire des fichiers, voir open()
, et pour accéder au système de fichiers, voir le module os
. Les paramètres de chemin peuvent être passés sous forme de chaînes ou d’octets. Les applications sont encouragées à représenter les noms de fichiers sous forme de chaînes de caractères (Unicode). Malheureusement, certains noms de fichiers peuvent ne pas être présentés sous forme de chaînes sous Unix, de sorte que les applications qui doivent prendre en charge les noms de fichiers binaires sous Unix doivent utiliser des objets bytes pour représenter les noms de chemin. Vice versa, l’utilisation d’objets bytes ne peut pas représenter tous les noms de fichiers sous Windows (dans le codage mbcs
standard), donc Windowsapplications doit utiliser des objets string pour accéder à tous les fichiers.
Contrairement à un shell unix, Python ne fait aucune extension de chemin automatique.Des fonctions telles que expanduser()
et expandvars()
peuvent être invoquées explicitement lorsqu’une application souhaite une extension de chemin de type shell. (Voir aussi le module glob
.)
Voir aussi
Le module pathlib
propose des objets de chemin de haut niveau.
Remarque
Toutes ces fonctions n’acceptent que des octets ou uniquement des objets de chaîne en tant que paramètres. Le résultat est un objet du même type, si un chemin ounom de fichier est renvoyé.
Remarque
Étant donné que différents systèmes d’exploitation ont des conventions de noms de chemin différentes, il existe plusieurs versions de ce module dans la bibliothèque standard. Le module os.path
est toujours le module de chemin adapté au système d’exploitation sur lequel Python s’exécute, et donc utilisable pour les chemins locaux. Cependant, vous pouvez également importer et utiliser les modules individuels si vous souhaitez manipulerun chemin qui est toujours dans l’un des différents formats. Ils ont tous la même interface:
-
posixpath
pour les chemins de style UNIX -
ntpath
pour les chemins Windows
Modifié dans la version 3.8: exists()
, lexists()
, isdir()
, isfile()
,islink()
, et ismount()
renvoie maintenant False
au lieu de générer une exception pour les chemins contenant des caractères ou des octets non représentables au niveau du système d’exploitation.
os.path.
abspath
( path)¶
Renvoie une version normalisée absolutisée du chemin path. Sur la plupart des plates-formes, cela équivaut à appeler la fonction normpath()
comme suit : normpath(join(os.getcwd(), path))
.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
basename
( path)¶
Renvoie le nom de base du chemin path. C’est le deuxième élément de la paire renvoyée en passant le chemin à la fonction split()
. Notez que le résultat de cette fonction est différent du programme Unix basename ; où basename pour '/foo/bar/'
renvoie 'bar'
, la fonction basename()
renvoie une chaîne vide (''
).
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
commonpath
( chemins)¶
Renvoie le plus long sous-chemin commun de chaque nom de chemin dans les chemins sequencepaths. Raise ValueError
si les chemins contiennent à la fois des chemins absolus et des chemins relatifs, les chemins sont sur les différents lecteurs ou si les chemins sont vides. Contrairement à commonprefix()
, cela renvoie le chemin avalid.
Disponibilité : Unix, Windows.
Nouveau dans la version 3.5.
Modifié dans la version 3.6 : Accepte une séquence d’objets de type chemin.
os.path.
commonprefix
( liste)¶
Renvoie le préfixe de chemin le plus long (pris caractère par caractère) qui est un préfixe de tous les chemins de la liste. Si la liste est vide, renvoie la chaîne vide (''
).
Note
Cette fonction peut renvoyer des chemins non valides car elle fonctionne à la fois. Pour obtenir un chemin valide, voir commonpath()
.
>>> os.path.commonprefix()'/usr/l'>>> os.path.commonpath()'/usr'
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
dirname
( path)¶
Renvoie le nom du répertoire de path path. C’est le premier élément de la paire renvoyée en passant le chemin à la fonction split()
.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
exists
( path)¶
Renvoie True
si path fait référence à un chemin existant ou à un descripteur openfile. Renvoie False
pour les liens symboliques brisés. Sur certaines plates-formes, cette fonction peut renvoyer False
si l’autorisation n’est pas accordée d’exécuter os.stat()
sur le fichier demandé, même si le chemin existe physiquement.
Modifié dans la version 3.3: path peut maintenant être un entier : True
est renvoyé s’il s’agit d’un descripteur de fichier ouvert, False
sinon.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
lexists
( path)¶
Renvoie True
si path fait référence à un chemin existant. Renvoie True
pour les liens symboliques interrompus. Équivalent à exists()
sur les plates-formes manquantes os.lstat()
.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
expanduser
( chemin d’accès)¶
Sous Unix et Windows, renvoie l’argument avec un composant initial de ~
ou ~user
remplacé par le répertoire personnel de cet utilisateur.
Sous Unix, une initiale ~
est remplacée par la variable d’environnement HOME
si elle est définie ; sinon, le répertoire personnel de l’utilisateur actuel est recherché dans le répertoire password via le module intégré pwd
. Une initiale ~user
est consultée directement dans le répertoire des mots de passe.
Sous Windows, USERPROFILE
sera utilisé s’il est défini, sinon une combinaison de HOMEPATH
et HOMEDRIVE
sera utilisée. Un ~user
initial est géré en supprimant le dernier composant de répertoire du chemin createduser dérivé ci-dessus.
Si l’expansion échoue ou si le chemin ne commence pas par un tilde, le chemin est retourné inchangé.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
Modifié dans la version 3.8 : N’utilise plus HOME
sous Windows.
os.path.
expandvars
( path)¶
Renvoie l’argument avec les variables d’environnement développées. Les sous-chaînes de la forme $name
ou ${name}
sont remplacées par la valeur de environment variablename. Les noms de variables mal formés et les références à des variables inexistantes sont laissés inchangés.
Sous Windows, les extensions %name%
sont prises en charge en plus des extensions $name
et ${name}
.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
getatime
( chemin)¶
Renvoie l’heure du dernier accès au chemin. La valeur de retour est un nombre à virgule flottante donnantle nombre de secondes depuis l’époque (voir le module time
). Raise OSError
si le fichier n’existe pas ou est inaccessible.
os.path.
getmtime
( chemin)¶
Renvoie l’heure de la dernière modification du chemin. La valeur de retour est un nombre à virgule flottanten indiquant le nombre de secondes depuis l’époque (voir le module time
).Raise OSError
si le fichier n’existe pas ou est inaccessible.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
getctime
( path)¶
Renvoie le ctime du système qui, sur certains systèmes (comme Unix) est l’heure de la dernière modification des métadonnées et, sur d’autres (comme Windows), est l’heure de création de path.La valeur de retour est un nombre donnant le nombre de secondes depuis l’époque (voir le module time
). Raise OSError
si le fichier n’existe pas ou est inaccessible.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
getsize
( path)¶
Renvoie la taille, en octets, de path. Raise OSError
si le fichier n’existe pas ou est inaccessible.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
isabs
( path)¶
Renvoie True
si path est un nom de chemin absolu. Sous Unix, cela signifie qu’il commence par une barre oblique, sous Windows qu’il commence par une barre oblique (arrière) après avoir coupé une lettre de lecteur potentielle.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
isfile
( path)¶
Renvoie True
si path est un fichier normal existing
.Cela suit des liens symboliques, de sorte que islink()
et isfile()
peuvent être vrais pour le même chemin.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
isdir
( path)¶
Renvoie True
si path est un répertoire existing
. Cela suit les liens symboliques, de sorte que islink()
et isdir()
peuvent être véridiques pour le même chemin.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
islink
( path)¶
Return True
si path fait référence à un directoryentry existing
qui est un lien symbolique. Toujours False
si les liens symboliques ne sont pas pris en charge par le runtime Python.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
ismount
( path)¶
Return True
si path est un point de montage : un point dans un système de fichiers où un autre système de fichiers a été monté. Sur POSIX, la fonction vérifie si le parent de path, path/..
, se trouve sur un appareil différent de path, ou si path/..
et path pointent vers le même nœud i sur le même périphérique — cela devrait détecter les points de montage pour toutes les variantes Unix et POSIX. Il n’est pas capable de détecter de manière fiable les montages de liaison sur le même système de fichiers. Sous Windows, une racine de lettre de lecteur et un partage UNC sonttoujours des points de montage, et pour tout autre chemin GetVolumePathName
est appelé pour voir s’il est différent du chemin d’entrée.
Nouveau dans la version 3.4: Prise en charge de la détection de points de montage non root sur Windows.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
join
( path, *paths)¶
Joignez intelligemment un ou plusieurs composants path. La valeur de retour est la concaténation de path et de tous les membres de *paths avec exactement un séparateur de répertoire (os.sep
) suivant chaque partie non vide à l’exception du dernier, ce qui signifie que le résultat ne se terminera par un séparateur que si la dernière partie est vide. Si un composant est un chemin absolu, tous les composants précédents sont jetés et la jonction se poursuit à partir du composant chemin absolu.
Sous Windows, la lettre de lecteur n’est pas réinitialisée lorsqu’un composant de chemin absolu (par exemple, r'\foo'
) est rencontré. Si un composant contient un driveletter, tous les composants précédents sont jetés et la lettre de lecteur est réinitialisée. Notez que puisqu’il existe un répertoire courant pour chaque lecteur, os.path.join("c:", "foo")
représente un chemin relatif au répertoire courant sur le lecteur C:
(c:foo
), pas c:\foo
.
Modifié dans la version 3.6 : Accepte un objet de type chemin pour le chemin et les chemins.
os.path.
normcase
( path)¶
Normalise la casse d’un nom de chemin. Sous Windows, convertissez tous les caractères de thepathname en minuscules et convertissez également les barres obliques avant en barres obliques arrière.Sur les autres systèmes d’exploitation, renvoyez le chemin inchangé.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
normpath
( chemin d’accès)¶
Normalise un chemin d’accès en réduisant les séparateurs redondants et les références de niveau supérieur de sorte que A//B
, A/B/
, A/./B
et A/foo/../B
toutdevenir A/B
. Cette manipulation de chaîne peut changer la signification d’un cheminqui contient des liens symboliques. Sous Windows, il convertit les barres obliques avant en barres obliques arrière. Pour normaliser la casse, utilisez normcase()
.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
realpath
( chemin)¶
Renvoie le chemin canonique du nom de fichier spécifié, éliminant les liens symboliques rencontrés dans le chemin (s’ils sont pris en charge par le système d’exploitation).
Note
Lorsque des cycles de lien symbolique se produisent, le chemin renvoyé sera un membre du cycle, mais aucune garantie n’est donnée quant au membre qui le sera.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
Modifié dans la version 3.8: Les liens symboliques et les jonctions sont maintenant résolus sous Windows.
os.path.
relpath
( chemin, start = os.curdir)¶
Renvoie un chemin de fichier relatif à path soit à partir du répertoire courant, soit à partir d’un répertoire de démarrage facultatif. Il s’agit d’un calcul de chemin: thefilesystem n’est pas accessible pour confirmer l’existence ou la nature de path orstart.
démarrer par défaut à os.curdir
.
Disponibilité : Unix, Windows.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
samefile
( path1, path2)¶
Renvoie True
si les deux arguments de nom de chemin font référence au même fichier ou répertoire.Ceci est déterminé par le numéro de périphérique et le numéro de nœud i et déclenche une exception si un appel os.stat()
sur l’un ou l’autre des chemins échoue.
Disponibilité : Unix, Windows.
Modifié dans la version 3.2: Ajout du support Windows.
Modifié dans la version 3.4: Windows utilise désormais la même implémentation que toutes les autres plates-formes.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
sameopenfile
( fp1, fp2)¶
Renvoie True
si les descripteurs de fichier fp1 et fp2 font référence au même fichier.
Disponibilité : Unix, Windows.
Modifié dans la version 3.2: Ajout du support Windows.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
samestat
( stat1, stat2)¶
Renvoie True
si les tuples statistiques stat1 et stat2 font référence au même fichier.Ces structures peuvent avoir été retournées par os.fstat()
, os.lstat()
ou os.stat()
. Cette fonction implémente la comparaison sous-jacente utilisée par samefile()
et sameopenfile()
.
Disponibilité : Unix, Windows.
Modifié dans la version 3.4: Ajout du support Windows.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
split
( chemin)¶
Divisez le chemin de chemin en une paire, (head, tail)
où tail est le dernier composant de chemin et head est tout ce qui mène à cela. La partie Queue ne contiendra jamais de barre oblique; si le chemin se termine par une barre oblique, la queue sera vide. S’il n’y a pas de barre oblique dans le chemin, la tête sera vide. Ifpath est vide, la tête et la queue sont vides. Les barres obliques de fin sont rayées de la tête à moins qu’il ne s’agisse de la racine (une ou plusieurs barres obliques uniquement). Dans tous les cas, join(head, tail)
renvoie un chemin au même emplacement que path (mais les chaînes peuvent différer). Voir également les fonctions dirname()
et basename()
.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
splitdrive
( chemin)¶
Divisez le chemin du nom de chemin en une paire (drive, tail)
où drive est soit un point de montage, soit la chaîne vide. Sur les systèmes qui n’utilisent pas drivespecifications, drive sera toujours la chaîne vide. Dans tous les cas, drive+ tail
sera le même que path.
Sous Windows, divise un nom de chemin en sharepoint drive/UNC et chemin relatif.
Si le chemin contient une lettre de lecteur, le lecteur contiendra tout jusqu’au deux points inclus.par ex. splitdrive("c:/dir")
renvoie ("c:", "/dir")
Si le chemin contient un chemin UNC, drive contiendra le nom de l’hôte et le partage, jusqu’au quatrième séparateur, mais sans y inclure.par ex. splitdrive("//host/computer/dir")
retours ("//host/computer", "/dir")
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
splitext
( chemin)¶
Divisez le chemin du nom de chemin en une paire (root, ext)
telle que root + ext ==path
, et ext est vide ou commence par un point et contient au plus une période. Les périodes de début sur le nom de base sont ignorées ; splitext('.cshrc')
renvoie ('.cshrc', '')
.
Modifié dans la version 3.6 : Accepte un objet de type chemin.
os.path.
supports_unicode_filenames