Código fuente: Lib/posixpath.py (para POSIX) andLib/ntpath.py (para Windows NT).
Este módulo implementa algunas funciones útiles en los nombres de ruta. Para leer o escribir archivos, consulte open()
, y para acceder al sistema de archivos, consulte el móduloos
. Los parámetros de ruta se pueden pasar como cadenas o bytes. Se recomienda a las aplicaciones que representen los nombres de archivo como cadenas de caracteres (Unicode). Desafortunadamente, algunos nombres de archivo pueden no serrepresentables como cadenas en Unix, por lo que las aplicaciones que necesitan admitir nombres de archivo bitrarios en Unix deben usar objetos bytes para representar nombres de ruta. Viceversa, el uso de objetos bytes no puede representar todos los nombres de archivo en Windows (en la codificación estándar mbcs
), por lo tanto, las aplicaciones de Windows deben usar objetos de cadena para acceder a todos los archivos.
A diferencia de un shell de Unix, Python no hace ninguna expansión automática de rutas.Funciones como expanduser()
y expandvars()
se pueden invocar explícitamente cuando una aplicación desea una expansión de ruta similar a la del shell. (Véase también el módulo glob
.)
Consulte también
El módulo pathlib
ofrece objetos de ruta de alto nivel.
Nota
Todas estas funciones aceptan solo bytes o solo objetos de cadena como sus parámetros. El resultado es un objeto del mismo tipo, si se devuelve una ruta de acceso o un nombre de archivo.
Nota
Dado que los diferentes sistemas operativos tienen diferentes convenciones de nombres de ruta, hay varias versiones de este módulo en la biblioteca estándar. El móduloos.path
es siempre el módulo de ruta adecuado para el sistema operativo en el que se ejecuta Python, y por lo tanto se puede usar para rutas locales. Sin embargo, también puede importar y utilizar los módulos individuales si desea manipular una ruta de acceso que siempre está en uno de los diferentes formatos. Todos tienen la misma interfaz:
-
posixpath
para rutas de estilo UNIX -
ntpath
para rutas de Windows
Cambiado en la versión 3.8: exists()
, lexists()
, isdir()
, isfile()
,islink()
, y ismount()
ahora devuelve False
en lugar de crear una excepción para rutas que contienen caracteres o bytes no representables a nivel del sistema operativo.
os.path.
abspath
(path)¶
Devuelve una versión absolutizada normalizada del pathname. En la mayoría de las plataformas, esto equivale a llamar a la función normpath()
como sigue: normpath(join(os.getcwd(), path))
.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
basename
(path)¶
Devuelve el nombre base de pathname path. Este es el segundo elemento del par devuelto al pasar la ruta a la función split()
. Tenga en cuenta que el resultado de esta función es diferente del programa Unix basename; donde basename for'/foo/bar/'
devuelve 'bar'
, la función basename()
devuelve una cadena vacía (''
).
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
commonpath
(rutas)¶
Devuelve la subtrayecto común más larga de cada nombre de ruta en las rutas de secuencia. Raise ValueError
si las rutas de acceso contienen tanto nombres de ruta absolutos como relativos, las rutas de acceso se encuentran en las diferentes unidades o si las rutas de acceso están vacías. A diferencia de commonprefix()
, esto devuelve la ruta avalid.
Disponibilidad: Unix, Windows.
Nuevo en la versión 3.5.
Modificado en la versión 3.6: Acepta una secuencia de objetos similares a rutas de acceso.
os.path.
commonprefix
(list)¶
Devuelve el prefijo de ruta más largo (tomado carácter por carácter) que es el prefijo de todas las rutas de la lista. Si la lista está vacía, devuelve la cadena vacía (''
).
Nota
Esta función puede devolver rutas no válidas porque funciona de forma simultánea. Para obtener una ruta válida, consultecommonpath()
.
>>> os.path.commonprefix()'/usr/l'>>> os.path.commonpath()'/usr'
Modificado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
dirname
(path)¶
Devuelve el nombre de directorio de pathname path. Este es el primer elemento del par devuelto pasando la ruta a la función split()
.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
exists
(path)¶
Devuelve True
si path se refiere a una ruta existente o a un descriptor de openfile. Devuelve False
para enlaces simbólicos rotos. En algunas plataformas, esta función puede devolver False
si no se concede permiso para ejecutar os.stat()
en el archivo solicitado, incluso si la ruta existe físicamente.
Cambiado en la versión 3.3: la ruta ahora puede ser un entero: True
se devuelve si es un descriptor de archivo abierto, False
de lo contrario.
Modificado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
lexists
(path)¶
Devuelve True
si path se refiere a una ruta existente. Devuelve True
enlaces simbólicos prohibidos. Equivalente a exists()
en plataformas que carecen deos.lstat()
.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
expanduser
(path)¶
En Unix y Windows, devuelve el argumento con un componente inicial de ~
o~user
reemplazado por el directorio personal de ese usuario.
En Unix, un ~
inicial se reemplaza por la variable de entorno HOME
si está establecida; de lo contrario, el directorio personal del usuario actual se busca en el directorio password a través del módulo incorporado pwd
. Se busca un ~user
inicial directamente en el directorio de contraseñas.
En Windows, se utilizará USERPROFILE
si se establece, de lo contrario se utilizará una combinación de HOMEPATH
y HOMEDRIVE
. Un ~user
inicial se maneja eliminando el último componente de directorio de la ruta createduser derivada anteriormente.
Si la expansión falla o si la ruta de acceso no comienza con una tilde, la ruta de acceso se devuelve sin cambios.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
Cambiado en la versión 3.8: Ya no usa HOME
en Windows.
os.path.
expandvars
(path)¶
Devuelve el argumento con las variables de entorno expandidas. Las subcadenas del formulario$name
o ${name}
se sustituyen por el valor de environment variablename. Los nombres de variables mal formados y las referencias a variables no existentes se mantienen sin cambios.
En Windows, se admiten expansiones %name%
además de $name
y${name}
.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
getatime
(ruta)¶
Devuelve la hora del último acceso a la ruta. El valor devuelto es un número de punto flotante que da el número de segundos desde la época (ver el módulo time
). LevanteOSError
si el archivo no existe o es inaccesible.
os.path.
getmtime
(path)¶
Devuelve la hora de la última modificación de la ruta. El valor devuelto es un número de punto flotante que indica el número de segundos desde la época (ver el módulo time
).Levante OSError
si el archivo no existe o es inaccesible.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
getctime
(path)¶
Devuelve el ctime del sistema que, en algunos sistemas (como Unix) es el momento del último cambio de metadatos, y en otros (como Windows), es el tiempo de creación de path.El valor devuelto es un número que indica el número de segundos desde la época (véase el módulo time
). Levante OSError
si el archivo no existe o es inaccesible.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
getsize
(ruta)¶
Devuelve el tamaño, en bytes, de la ruta. Levante OSError
si el archivo no existe o es inaccesible.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
isabs
(path)¶
Devuelve True
si path es un nombre de ruta absoluto. En Unix, eso significa que comienza con una barra diagonal, en Windows que comienza con una barra diagonal (hacia atrás)después de cortar una letra de unidad potencial.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
isfile
(path)¶
Devuelve True
si path es un archivo normal existing
.Esto sigue enlaces simbólicos, por lo que tanto islink()
como isfile()
pueden ser verdaderos para la misma ruta.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
isdir
(path)¶
Devuelve True
si path es un directorio existing
. Esto sigue enlaces simbólicos, por lo que tanto islink()
como isdir()
pueden ser verdaderos para la misma ruta.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
islink
(path)¶
Devuelve True
si path se refiere a un existing
directoryentry que es un enlace simbólico. Siempre False
si los enlaces simbólicos no son compatibles con el tiempo de ejecución de Python.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
ismount
(path)¶
Devuelve True
si pathname path es un punto de montaje: un punto en el sistema de archivos donde se ha montado un sistema de archivos diferente. En POSIX, la función comprueba si el padre de la ruta de acceso, path/..
, está en un dispositivo diferente que la ruta de acceso, o si path/..
y la ruta de acceso apuntan al mismo nodo i en el mismo dispositivo, esto debería detectar puntos de montaje para todas las variantes Unix y POSIX. No es capaz de detectar de forma fiable montajes de enlace en el mismo sistema de archivos. En Windows, se llama a una raíz de letra de unidad y a un área compartida UNC siempre puntos de montaje, y para cualquier otra ruta GetVolumePathName
para ver si es diferente de la ruta de entrada.
Nuevo en la versión 3.4: Soporte para detectar puntos de montaje no raíz en Windows.
Modificado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
join
(ruta, * rutas)¶
Unir uno o más componentes de ruta de forma inteligente. El valor devuelto es la concatenación de path y cualquier miembro de *paths con un separador de directorio exacto (os.sep
) después de cada parte no vacía excepto la última, lo que significa que el resultado solo terminará en un separador si la última parte está vacía. Si un componente es una ruta de acceso absoluta, todos los componentes anteriores se desechan y la unión continúa desde la ruta de acceso absoluta.
En Windows, la letra de unidad no se restablece cuando se encuentra un componente de ruta absoluta(por ejemplo, r'\foo'
). Si un componente contiene un lector de transmisión, todos los componentes anteriores se desechan y la letra de la unidad se restablece. Tenga en cuenta que, dado que hay un directorio actual para cada unidad,os.path.join("c:", "foo")
representa una ruta relativa al directorio actual en la unidad C:
(c:foo
), no c:\foo
.
Modificado en la versión 3.6: Acepta un objeto tipo path para path y paths.
os.path.
normcase
(ruta)¶
Normalizar el caso de un nombre de ruta. En Windows, convierta todos los caracteres en el nombre de ruta a minúsculas, y también convierta las barras inclinadas hacia adelante en barras inclinadas hacia atrás.En otros sistemas operativos, devuelva la ruta sin cambios.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
normpath
(ruta de acceso)¶
Normalice un nombre de ruta colapsando separadores redundantes y referencias de nivel superior de modo que A//B
, A/B/
, A/./B
y A/foo/../B
allbecome A/B
. Esta manipulación de cadenas puede cambiar el significado de una ruta que contiene enlaces simbólicos. En Windows, convierte barras hacia adelante barras hacia atrás. Para normalizar el caso, utilice normcase()
.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
realpath
(ruta)¶
Devuelve la ruta canónica del nombre de archivo especificado, eliminando cualquier enlace simbólico encontrado en la ruta (si son compatibles con el sistema operativo).
Nota
Cuando se producen ciclos de enlace simbólico, la ruta devuelta será un miembro del ciclo, pero no se garantiza qué miembro será.
Modificado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
Cambiado en la versión 3.8: Los enlaces y uniones simbólicos ahora se resuelven en Windows.
os.path.
relpath
(path, start = os.curdir)¶
Devuelve una ruta de archivo relativa a la ruta de acceso desde el directorio actual o desde un directorio de inicio opcional. Este es un cálculo de ruta: no se accede al sistema de archivos para confirmar la existencia o naturaleza de la ruta o inicio.
inicio por defecto es os.curdir
.
Disponibilidad: Unix, Windows.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
samefile
(path1, path2)¶
Devuelve True
si ambos argumentos de nombre de ruta se refieren al mismo archivo o directorio.Esto está determinado por el número de dispositivo y el número de nodo i y genera una excepción si falla una llamada os.stat()
en cualquiera de los nombres de ruta.
Disponibilidad: Unix, Windows.
Modificado en la versión 3.2: Añadido soporte para Windows.
Modificado en la versión 3.4: Windows ahora utiliza la misma implementación que todas las demás plataformas.
Modificado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
sameopenfile
(fp1, fp2)¶
Devuelve True
si los descriptores de archivo fp1 y fp2 se refieren al mismo archivo.
Disponibilidad: Unix, Windows.
Modificado en la versión 3.2: Añadido soporte para Windows.
Modificado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
samestat
(stat1, stat2)¶
Devuelve True
si las tuplas estadísticas stat1 y stat2 se refieren al mismo archivo.Estas estructuras pueden haber sido devueltas por os.fstat()
,os.lstat()
, o os.stat()
. Esta función implementa la comparación subyacente utilizada por samefile()
y sameopenfile()
.
Disponibilidad: Unix, Windows.
Modificado en la versión 3.4: Añadido soporte para Windows.
Modificado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
split
(ruta)¶
Divida la ruta de ruta en un par, (head, tail)
donde tail es el último componente de ruta y head es todo lo que conduce a eso. La parte de cola nunca contendrá una barra diagonal; si la ruta termina en una barra diagonal, la cola estará vacía. Si no hay una barra en el camino, la cabeza estará vacía. Si el sendero está vacío, tanto la cabeza como la cola están vacías. Las barras finales se recortan de la cabeza a menos que sea la raíz (solo una o más barras). En todos los casos, join(head, tail)
devuelve una ruta a la misma ubicación que la ruta (pero las cadenas pueden diferir). Vea también las funciones dirname()
ybasename()
.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
splitdrive
(ruta)¶
Divida la ruta de ruta en un par (drive, tail)
donde la unidad es un punto de montaje o la cadena vacía. En los sistemas que no utilizan especificaciones de transmisión, la transmisión siempre será la cadena vacía. En todos los casos, drive+ tail
será lo mismo que path.
En Windows, divide un nombre de ruta en drive / UNC sharepoint y ruta relativa.
Si la ruta de acceso contiene una letra de unidad, la unidad contendrá todo hasta e incluyendo los dos puntos.e. g. splitdrive("c:/dir")
devuelve ("c:", "/dir")
Si la ruta de acceso contiene una ruta UNC, la unidad contendrá el nombre de host y el recurso compartido, hasta el cuarto separador, pero sin incluirlo.por ejemplo, devoluciones splitdrive("//host/computer/dir")
("//host/computer", "/dir")
Modificado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
splitext
(ruta)¶
Divida la ruta de ruta en un par (root, ext)
tal que root + ext ==path
, y ext está vacío o comienza con un punto y contiene como máximo un período. Los puntos iniciales en el nombre base se ignoran; splitext('.cshrc')
devuelve ('.cshrc', '')
.
Cambiado en la versión 3.6: Acepta un objeto similar a una ruta de acceso.
os.path.
supports_unicode_filenames