Ottieni il genitore della directory corrente usando Python

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

Il modulo OS fornisce vari modi per ottenere la directory principale. Alcuni dei modi:

Usando os.path. abspath()

os.path.abspath() può essere utilizzato per ottenere la directory principale. Questo metodo viene utilizzato per ottenere la versione normalizzata del percorso. Anche questa funzione ha bisogno di aiuto os.path.join ( () e os.pardir () .
os.path.join ( () in Python os.path.join ( () combina uno o più componenti di percorso. Questo metodo concatena vari componenti di percorso con esattamente uno (' / ') separatore di directory dopo ogni parte non vuota eccetto l`ultimo componente del percorso. Se l`ultimo componente del percorso da unire è vuoto, il ( ' / ') il separatore di directory è posizionato alla fine.

Sintassi: os.path.abspath (percorso)

Parametri:
percorso: un oggetto simile a un percorso che rappresenta un percorso del file system.

Restituisci Digita: Restituisce una stringa che è una versione normalizzata del percorso.

Esempio:


# Programma Python per ottenere il genitore
# directory



import os


# recupera la directory corrente

percorso = os.getcwd ()

print ( "Directory corrente" , cwd)


# stampa la directory principale

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

Risultato:

Utilizzando os.path.dirname ()

os.path.dirname () in Python è usato per ottenere il nome di una directory in un dato percorso.

Sintassi: os.path.dirname< /a>(percorso)

Parametro:
percorso: Un oggetto simile a un percorso che rappresenta un percorso del file system.

Tipo restituito: questo metodo restituisce un valore stringa che rappresenta il nome della directory dal percorso specificato.

Esempio:

# Programma Python per ottenere il genitore
# directory


import os


# recupera la directory corrente

percorso = os.getcwd()

print ( "Cu directory rrent " , percorso)

print ( )


# directory principale

genitore = os. path.dirname (percorso)

print ( "Directory principale" , genitore)

Esci :

Utilizzo di os.path.relpath () e os.path.dirname ()

Negli esempi precedenti, il recupero della directory padre era limitato a un livello, cioè , potremmo solo portare il livello padre della directory corrente a un solo livello ... Supponiamo di voler trovare il livello padre per la directory padre, quindi il codice sopra avrà esito negativo. Questo può essere ottenuto condividendo os.path.dirname () .

os.path.relpath () in Python è usato per ottieni il percorso relativo di un file in un determinato percorso dalla directory di lavoro corrente o dalla directory specificata.

Sintassi: os.path.relpath (percorso, inizio = os.curdir)

Parametro:
percorso: Un oggetto simile a un percorso che rappresenta il percorso del file system.
start (opzionale): Un oggetto simile a un percorso che rappresenta il percorso del file system.
Il percorso relativo per un determinato percorso verrà calcolato rispetto alla directory indicata da start. Il valore predefinito di questo parametro è os. curdir che è una costante st anello utilizzato dal sistema operativo per fare riferimento alla directory corrente.

Un oggetto simile a un percorso è un oggetto stringa o byte che rappresenta un percorso.

Tipo di ritorno: Questo metodo restituisce un valore stringa che rappresenta il percorso del file relativo al percorso specificato dalla directory iniziale.0222

Esempio:

Per ottenere la directory principale in base ai livelli specificati dall`utente, creeremo una funzione getParent() che accetterà un percorso e livelli come argomenti. All`interno della funzione, il ciclo for ripeterà i numeri temporali di livello + 1 e all`interno del ciclo for os.path.dirname () verrà chiamato. Chiamare questa funzione all`interno di un ciclo for ci darà un punto di partenza da cui os.path.relpath() fornirà il percorso relativo al file.

Di seguito è riportata l`implementazione.


# getter Python
# directory principale



import os.path


# funzione per ottenere il genitore

def getParent (percorso, livelli = 1 ):

comune = percorso


# Utilizzo del ciclo per ottenere

# il punto di partenza richiesto per

# os.path.relpath ()

for i in range (livelli + 1 ):


# Punto di partenza

comune = os.path.dirname (comune)

# Directory principale prima del

# livello

return os.path.relpath (percorso, comune)


percorso = `D: / Progetti Pycharm / Py thon.Engineering / Nikhil / gfg.txt`

print (getParent (percorso, 2 ))

Esci :