Obtener padre del directorio actual usando Python

En Python, el módulo OS se usa para interactuar con el sistema operativo. Viene bajo los módulos de utilidad estándar de Python. Este módulo proporciona una forma portátil de usar la funcionalidad dependiente del sistema operativo. Los módulos *os* y *os.path* incluyen muchas funciones para interactuar con el sistema de archivos. 
El módulo del sistema operativo proporciona varias formas de obtener el directorio principal. Algunas de las formas son: 
 

Usando os.path.abspath()

os.path.abspath() se puede usar 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 la ayuda de os.path.join() y os.pardir(). 
El método os.path.join() en Python une uno o más componentes de ruta de manera inteligente. Este método concatena varios componentes de ruta con exactamente un separador de directorio (‘/’) después de cada parte no vacía excepto el último componente de ruta. Si el último componente de ruta que se va a unir está vacío, se coloca un separador de directorio (‘/’) al final. 
 

Sintaxis: os.path.abspath(ruta)
Parámetros:  
ruta: un objeto similar a una ruta que representa una ruta del sistema de archivos.
Tipo de devolución: devuelve una string que es una versión normalizada de la ruta. 
 

Ejemplo:
 

Python3

# Python program to get parent
# directory
 
 
import os
 
# get current directory
path = os.getcwd()
print("Current Directory", path)
 
# prints parent directory
print(os.path.abspath(os.path.join(path, os.pardir)))

Producción: 
 

python-parent-directory

Usando os.path.dirname()

El método os.path.dirname() en Python se usa para obtener el nombre del directorio de la ruta especificada.
 

Sintaxis: os.path.dirname(ruta)
Pará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 string que representa el nombre del directorio de la ruta especificada. 
 

Ejemplo: 
 

Python3

# Python program to get parent
# directory
 
 
import os
 
# get current directory
path = os.getcwd()
print("Current Directory", path)
print()
 
# parent directory
parent = os.path.dirname(path)
print("Parent directory", parent)

Producción:
 

python-parent-directory

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

En los ejemplos anteriores, la obtención del directorio principal se limitó a un nivel, es decir, solo pudimos obtener el directorio principal del directorio actual hasta un solo nivel. Supongamos que queremos encontrar el directorio principal en el directorio principal, entonces el código anterior falla. Esto se puede lograr usando os.path.relpath() y os.path.dirname() juntos. 
El método os.path.relpath() en Python se usa para obtener una ruta de archivo relativa a la ruta dada, ya sea desde el directorio de trabajo actual o desde el directorio dado.
 

Sintaxis: os.path.relpath(ruta, inicio = 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 inicio. El valor predeterminado de este parámetro es os.curdir, que es una string constante utilizada por el sistema operativo para hacer referencia al directorio actual.
Un objeto similar a una ruta es una string o un objeto de bytes que representa una ruta.
Tipo de devolución: este método devuelve un valor de string que representa la ruta de archivo relativa a la ruta dada desde el directorio de inicio.0222 
 

Ejemplo:
para obtener el directorio principal según los niveles especificados por el usuario, crearemos una función getParent() que tomará la ruta y los niveles como argumentos. Dentro de la función, un ciclo for iterará el nivel+1 números de tiempo y se llamará a os.path.dirname() dentro del ciclo for. Llamar a esta función dentro del bucle for nos dará el punto de partida desde el cual os.path.relpath() dará la ruta del archivo relativa.
A continuación se muestra la implementación.
 

Python3

# Python program to get the
# parent directory
 
 
import os.path
 
# function to get parent
def getParent(path, levels = 1):
    common = path
 
    # Using for loop for getting
    # starting point required for
    # os.path.relpath()
    for i in range(levels + 1):
 
        # Starting point
        common = os.path.dirname(common)
 
    # Parent directory upto specified
    # level
    return os.path.relpath(path, common)
 
path = 'D:/Pycharm projects / GeeksforGeeks / Nikhil / gfg.txt'
print(getParent(path, 2))

Producción:
 

python-parent-directory

Publicación traducida automáticamente

Artículo escrito por nikhilaggarwal3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *