De OS-module biedt verschillende manieren om de bovenliggende map te krijgen. Enkele manieren:
- os.path.abspath () gebruiken
- os gebruiken . path.dirname ()
- os.path.relpath () en os.path.dirname ()
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 :