Obtener padre del directorio actual usando Python

| | | | | | | | | | | | | | | | | | | | | |

El módulo OS proporciona varias formas de obtener el directorio principal. Algunas de las formas:

Usando os.path. abspath ()

os.path.abspath () se puede utilizar para obtener el directorio principal. Este método se utiliza para obtener la versión normalizada de la ruta. Esta función también necesita ayuda os.path.join ( () y os.pardir () .
os.path.join ( () en Python os.path.join ( () combina uno o más componentes de ruta. Este método concatena varios componentes de ruta con exactamente uno (' / ') separador de directorio después de cada parte no vacía excepto el último componente de la ruta. Si el último componente de la ruta para unir está vacío, entonces el ( ' / ') el separador de directorio se coloca al final.

Sintaxis: os.path.abspath (ruta)

Parámetros:
ruta: Un objeto similar a una ruta que representa una ruta del sistema de archivos.

Volver Tipo: Devuelve una cadena que es una versión normalizada de la ruta.

Ejemplo:


# Programa de Python para obtener padre
# directorio



import os


# obtener el directorio actual < /código>

ruta = os.getcwd() < /código>

imprimir ( "Directorio actual" , cwd)


# imprime el directorio principal

imprimir (os.path.abspath ( < a href="https://python.engineering/python-os-path-join-method/">os.path.join ( (ruta, os.pardir)))

Salida:

Usar os.path.dirname ()

os.path.dirname () en Python se usa para obtener el nombre de un directorio en un camino dado.

Sintaxis: os.path.dirname< /a>(ruta)

P arámetro:
ruta: Un objeto similar a una ruta que representa una ruta del sistema de archivos.

Tipo de devolución: este método devuelve un valor de cadena que representa el nombre del directorio de la ruta especificada.

Ejemplo:

# Programa Python para obtener padre
# directorio


importar os


# obtener el directorio actual

ruta = os.getcwd()

print ( "Cu Directorio actual " , ruta)

imprimir ( )


# directorio padre

padre = os. ruta.dirname (ruta)

imprimir ( "Directorio principal" , parent)

Salir :

Usar os.path.relpath () y os.path.dirname ()

En los ejemplos anteriores, obtener el directorio principal estaba limitado a un nivel, es decir , solo podríamos obtener el nivel principal del directorio actual en un solo nivel... Supongamos que queremos encontrar el nivel principal del directorio principal, entonces el código anterior fallará. Esto se puede lograr compartiendo os.path.dirname () .

os.path.relpath() en Python se usa para obtener la ruta relativa a un archivo en una ruta dada desde el directorio de trabajo actual o desde el directorio dado.

Sintaxis: os.path.relpath (path, start = os.curdir)

Parámetro:
ruta: Un objeto similar a una ruta que representa la ruta del sistema de archivos.
start (opcional): Un objeto similar a una ruta que representa la ruta del sistema de archivos.
La ruta relativa para la ruta dada se calculará con respecto al directorio indicado por start. El valor predeterminado de este parámetro es os. curdir que es una constante st anillo utilizado por el sistema operativo para referirse al directorio actual.

Un objeto similar a una ruta es una cadena o un objeto de bytes que representa una ruta.

Tipo de retorno: Este método devuelve un valor de cadena que representa la ruta de archivo relativa a la ruta dada desde el directorio de inicio.0222

Ejemplo:

Para obtener el directorio principal de acuerdo con los niveles especificados por el usuario, crearemos una función getParent() que aceptará una ruta y niveles como argumentos Dentro de la función, el bucle for repetirá level + 1 números de tiempo, y dentro del bucle for , os.path.dirname () será llamado. Llamar a esta función dentro de un ciclo for nos dará un punto de partida desde el cual os.path.relpath() dará la ruta relativa al archivo.

A continuación se muestra la implementación.


# getter de Python
# directorio principal



importar os.path


# función para obtener padre

def getParent (ruta, niveles = 1 ):

común = ruta


# Uso del ciclo for para obtener

# el punto de inicio requerido para

# os.path.relpath ()

para i en rango (niveles + 1 ):


# Punto de partida

común = os.path.dirname (común)

# Directorio principal antes del especificado

# nivel

return os.path.relpath (ruta, común)


ruta = ’D: / Proyectos Pycharm / Py thon.Engineering / Nikhil / gfg.txt’

print (getParent (ruta, 2 ))

Salir :