Bovenliggende map van huidige map ophalen met Python

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

De OS-module biedt verschillende manieren om de bovenliggende map te krijgen. Enkele manieren:

os.path gebruiken. abspath ()

os.path.abspath () kan worden gebruikt om de bovenliggende map te krijgen. Deze methode wordt gebruikt om de genormaliseerde versie van het pad te krijgen. Deze functie heeft ook hulp nodig os.path.join ( () en os.pardir () .
os.path.join ( () in Python os.path.join ( () combineert een of meer padcomponenten. Deze methode voegt verschillende padcomponenten samen met precies één (' / ') directoryscheidingsteken na elk niet-leeg deel behalve de laatste padcomponent. Als de laatste component van het toe te voegen pad leeg is, dan wordt de ( ' / ') mapscheidingsteken wordt aan het einde geplaatst.

Syntaxis: os.path.abspath (pad)

Parameters:
pad: Een pad-achtig object dat een bestandssysteempad vertegenwoordigt.

Return Type: Retourneert een tekenreeks die een genormaliseerde versie van het pad is.

Voorbeeld:


# Python-programma om ouder te krijgen
# directory



import os


# haal de huidige directory op

pad = os.getcwd ()

print ( "Huidige map" , cwd)


# drukt de bovenliggende map af

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

Uitvoer:

os.path.dirname gebruiken a> ()

os.path.dirname () in Python wordt gebruikt om de naam van een map op een gegeven pad.

Syntaxis: os.path.dirname< /a>(pad)

P arameter:
pad: Een padachtig object dat een bestandssysteempad vertegenwoordigt.

Retourtype: Deze methode retourneert een tekenreekswaarde die de mapnaam van het opgegeven pad vertegenwoordigt.

Voorbeeld:

# Python-programma om ouder te krijgen
# directory


import os


# haal de huidige directory op

pad = os.getcwd ()

print ( "Cu rrent Directory " , pad)

print ( )


# bovenliggende map

bovenliggende = os. pad.dirnaam (pad)

print ( "Ouderdirectory" , ouder)

Afsluiten :

Gebruik van os.path.relpath () en os.path.dirname ()

In de bovenstaande voorbeelden was het verkrijgen van de bovenliggende map beperkt tot één niveau, namelijk , we konden het bovenliggende niveau van de huidige map slechts op één niveau krijgen ... Stel dat we de bovenliggende map voor de bovenliggende map willen vinden, dan zal de bovenstaande code mislukken. Dit kan worden bereikt door os.path.dirname () .

os.path.relpath () in Python wordt gebruikt om haal het relatieve pad naar een bestand op een bepaald pad uit de huidige werkdirectory of de gegeven directory.

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

Parameter:
pad: Een pad-achtig object dat het bestandssysteempad vertegenwoordigt.
start (optioneel): Een pad-achtig object dat het pad van het bestandssysteem vertegenwoordigt.
Het relatieve pad voor het gegeven pad wordt berekend met betrekking tot de map die wordt aangegeven door start. De standaardwaarde van deze parameter is os. curdir die een constante st . is ring die door het besturingssysteem wordt gebruikt om naar de huidige map te verwijzen.

Een pad-achtig object is een tekenreeks of een bytes-object dat een pad vertegenwoordigt.

Return Type: Deze methode retourneert een tekenreekswaarde die het relatieve bestandspad naar het opgegeven pad vanuit de startdirectory vertegenwoordigt.0222

Voorbeeld:

Om de bovenliggende map te krijgen volgens door de gebruiker gespecificeerde niveaus, zullen we een functie maken getParent () die een pad en niveaus accepteert als argumenten. Binnen de functie herhaalt de for-lus niveau + 1 tijdnummers, en binnen de for-lus -lus os.path.dirname () wordt aangeroepen. Door deze functie binnen een for-lus aan te roepen, krijgen we een startpunt van waaruit os.path.relpath () het relatieve pad naar het bestand zal geven.

Hieronder is de implementatie.


# Python getter
# bovenliggende map



import os.path


# functie om ouder te krijgen

def getParent (pad, niveaus = 1 ):

common = pad


# Gebruik for loop om

# het startpunt te krijgen dat nodig is voor

# os.path.relpath ()

voor i in bereik (niveaus + 1 ):


# Startpunt

algemeen = os.path.dirname (algemeen)

# Bovenliggende directory voor de opgegeven

# level

return os.path.relpath (path, common)


path = ’D: / Pycharm-projecten / Py thon.Engineering / Nikhil / gfg.txt’

print (getParent (pad, 2 ))

Afsluiten :