HOWTO · Python
Obtener directorio principal en Python
Este tutorial demuestra cómo obtener el directorio principal de una ruta en Python
En esta página
Este tutorial explicará varios métodos para obtener el directorio principal de una ruta en Python. El directorio principal es el directorio que está directamente por encima del directorio o archivo dado. Por ejemplo, el directorio principal de una ruta C:\folder\subfolder\myfile.txt es C:\folder\subfolder. Todos los directorios, excepto el raíz, tienen un directorio principal distinto; el directorio principal del directorio raíz es el propio directorio raíz.
Obtener el directorio padre de una ruta con Path.parent
El módulo pathlib representa una ruta como un objeto Path. Su propiedad parent proporciona el padre lógico de la ruta, como otro objeto Path; envuélvalo en str() si necesita el padre como una cadena. No hay nada que llamar ni ningún argumento que pasar: se lee la propiedad del Path que se ha construido.
El siguiente código de ejemplo muestra cómo utilizar la propiedad parent para obtener el directorio principal de una ruta en Python:
from pathlib import Path
path1 = Path(r"C:\folder\subfolder\myfile.txt")
path2 = Path(r"C:\Myfile.txt")
print(path1.parent)
print(path2.parent)
Salida:
C:\folder\subfolder
C:\
Usar os.pardir con os.path.join()
os.pardir es una cadena constante que hace referencia al directorio principal. Es '..' en Windows y en los sistemas POSIX, incluido macOS.
Cuando combinamos la ruta dada y os.pardir con la función os.path.join() y normalizamos el resultado con os.path.abspath(), obtenemos el directorio principal de la ruta dada.
El siguiente código de ejemplo muestra cómo utilizar os.pardir y os.path.join() para obtener el directorio principal de una ruta:
import os.path
path1 = r"C:\folder\subfolder\myfile.txt"
path2 = r"C:\Myfile.txt"
print(os.path.abspath(os.path.join(path1, os.pardir)))
print(os.path.abspath(os.path.join(path2, os.pardir)))
Salida:
C:\folder\subfolder
C:\
Como se ha mencionado anteriormente, también podríamos obtener el mismo resultado si sustituimos os.pardir por '..'.
import os.path
path1 = r"C:\folder\subfolder\myfile.txt"
path2 = r"C:\Myfile.txt"
print(os.path.abspath(os.path.join(path1, "..")))
print(os.path.abspath(os.path.join(path2, "..")))
Salida:
C:\folder\subfolder
C:\
Obtener el directorio padre de una ruta con os.path.dirname()
os.path.dirname() es una función que toma una cadena de ruta como entrada y devuelve la parte del directorio de la ruta: todo hasta el último separador de ruta. Para una ruta que apunta a un archivo, esa parte del directorio es el directorio principal, devuelto como una cadena.
El siguiente código de ejemplo muestra cómo utilizar os.path.dirname() para obtener el directorio principal de una ruta:
import os.path
path1 = r"C:\folder\subfolder\myfile.txt"
path2 = r"C:\Myfile.txt"
print(os.path.dirname(path1))
print(os.path.dirname(path2))
Salida:
C:\folder\subfolder
C:\