Uzyskaj rodzica bieżącego katalogu za pomocą Pythona

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

Moduł systemu operacyjnego zapewnia różne sposoby uzyskania katalogu nadrzędnego. Niektóre sposoby:

Korzystanie z os.path. abspath ()

os.path.abspath () może być użyty do pobrania katalogu nadrzędnego. Ta metoda służy do pobrania znormalizowanej wersji ścieżki. Ta funkcja również wymaga pomocy os.path.join ( () i os.pardir () .
os.path.join ( () w Pythonie os.path.join ( () łączy jeden lub więcej składników ścieżki. Ta metoda łączy różne składniki ścieżki z dokładnie jednym (' / ') separator katalogów po każdej niepustej części z wyjątkiem ostatniego składnika ścieżki. Jeśli ostatni składnik ścieżki do dołączenia jest pusty, wówczas ( ' / ') separator katalogów jest umieszczony na końcu.

Składnia: os.path.abspath (ścieżka)

Parametry:
ścieżka: obiekt podobny do ścieżki reprezentujący ścieżkę systemu plików.

Powrót Wpisz: Zwraca ciąg, który jest znormalizowaną wersją ścieżki.

Przykład:


# program w Pythonie do pobrania elementu nadrzędnego
# katalog



import os


# pobierz bieżący katalog

ścieżka = os.getcwd ()

print ( "Aktualny katalog" , cwd)


# drukuje katalog nadrzędny

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

Wyjście:

Korzystanie z os.path.dirname ()

os.path.dirname () w Pythonie służy do uzyskania nazwy katalogu w podana ścieżka.

Składnia: os.path.dirname< /a>(ścieżka)

P arametr:
ścieżka: Obiekt podobny do ścieżki reprezentujący ścieżkę systemu plików.

Typ zwrotu: Ta metoda zwraca wartość ciągu, która reprezentuje nazwę katalogu z określonej ścieżki.

Przykład:

# Program w Pythonie do pobrania nadrzędnego
# katalog


import os


# pobierz bieżący katalog

ścieżka = os.getcwd ()

print ( "Cu Katalog rrent " , ścieżka)

print ( )


# katalog nadrzędny

macierzysty = os. path.dirname (ścieżka)

print ( "Katalog nadrzędny" , parent)

Wyjdź :

Korzystanie z os.path.relpath () i os.path.dirname ()

W powyższych przykładach pobieranie katalogu nadrzędnego było ograniczone do jednego poziomu, czyli , możemy uzyskać tylko jeden poziom nadrzędnego katalogu bieżącego... Załóżmy, że chcemy znaleźć nadrzędnego katalogu nadrzędnego, a powyższy kod nie powiedzie się. Można to osiągnąć, udostępniając os.path.dirname () .

os.path.relpath () w Pythonie służy do pobierz względną ścieżkę do pliku w podanej ścieżce z bieżącego katalogu roboczego lub z podanego katalogu.

Składnia: os.path.relpath (ścieżka, start = os.curdir)

Parametr:
ścieżka: Obiekt przypominający ścieżkę reprezentujący ścieżkę systemu plików.
start (opcjonalne): obiekt przypominający ścieżkę reprezentujący ścieżkę systemu plików.
Ścieżka względna dla podanej ścieżki zostanie obliczona w odniesieniu do katalogu wskazanego przez start. Domyślną wartością tego parametru jest os. curdir, który jest stałym st pierścień używany przez system operacyjny do odwoływania się do bieżącego katalogu.

Obiekt podobny do ścieżki to obiekt typu string lub bajtów reprezentujący ścieżkę.

Typ zwrotu: Ta metoda zwraca wartość ciągu, która reprezentuje względną ścieżkę pliku do podanej ścieżki z katalogu startowego.0222

Przykład:

Aby uzyskać katalog nadrzędny zgodnie z poziomami określonymi przez użytkownika, utworzymy funkcję getParent() , która przyjmie ścieżkę i poziomy jako argumenty. Wewnątrz funkcji pętla for będzie powtarzać numery czasu poziom + 1 , a wewnątrz pętli for loop os.path.dirname () zostanie wywołana. Wywołanie tej funkcji wewnątrz pętli for da nam punkt wyjścia, z którego os.path.relpath() poda względną ścieżkę do pliku.

Poniżej znajduje się implementacja.


# getter Pythona
# katalog nadrzędny



import os.path


# funkcja do pobrania rodzica

def getParent (ścieżka, poziomy = 1 ):

common = ścieżka


# Użycie pętli for, aby uzyskać

# punkt początkowy wymagany dla

# os.path.relpath ()

for i w zakresie (poziomy + 1 ):


# Punkt początkowy

wspólne = os.path.dirname (wspólne)

# Katalog nadrzędny przed określonym

# poziom

return os.path.relpath (ścieżka, wspólna)


ścieżka = ’D: / Projekty Pycharm / Py thon.Engineering / Nikhil / gfg.txt’

print (getParent (ścieżka, 2 ))

Wyjdź :