Получить родителя текущего каталога с помощью Python

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

Модуль ОС предоставляет различные способы получения родительского каталога. Некоторые из способов:

Использование os.path. abspath()

os.path.abspath() можно использовать для получения родительского каталога. Этот метод используется для получения нормализованной версии пути. Эта функция также нуждается в помощи os.path.join ( () и os.pardir () .
os.path.join ( () в Python os.path.join ( () объединяет один или несколько компонентов пути. Этот метод объединяет различные компоненты пути ровно с одним (' / ') разделитель каталогов после каждой непустой части, кроме последнего компонента пути. Если последний компонент пути для соединения пуст, то ( ' / ') разделитель каталогов помещается в конец.

Синтаксис: os.path.abspath (путь)

Параметры:
путь: Объект, подобный пути, представляющий путь к файловой системе.

Возврат Тип: Возвращает строку, являющуюся нормализованной версией пути.

Пример:


# Программа Python для получения родительского
# каталог



import os


# получить текущий каталог

путь = os.getcwd ()

print ( "Current Directory" , cwd)


# печатает родительский каталог

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

Вывод:

Использование os.path.dirname ()

os.path.dirname () в Python используется для получения имени каталога в заданный путь.

Синтаксис: os.path.dirname< /a>(путь)

Параметр:
путь: Объект, подобный пути, представляющий путь к файловой системе.

Тип возвращаемого значения: этот метод возвращает строковое значение, представляющее имя каталога по указанному пути.

Пример:

# Программа Python для получения родительского элемента
# каталог


import os


# получить текущий каталог

путь = os.getcwd ()

print ( "Cu каталог rrent " , путь)

print ( )


# родительский каталог

parent = os. path.dirname (путь)

print ( "Родительский каталог" , parent)

Выход :

Использование os.path.relpath() и os.path.dirname ()

В приведенных выше примерах получение родительского каталога было ограничено одним уровнем, т.е. , мы могли бы получить родительский уровень текущего каталога только до одного уровня... Предположим, мы хотим найти родителя для родительского каталога, тогда приведенный выше код не сработает. Этого можно добиться путем совместного использования os.path.dirname () .

os.path.relpath () в Python используется для получить относительный путь к файлу по заданному пути либо из текущего рабочего каталога, либо из заданного каталога.

Синтаксис: os.path.relpath(path, start = os.curdir)

Параметр:
path: Объект, подобный пути, представляющий путь к файловой системе.
start (необязательно): объект, похожий на путь, представляющий путь к файловой системе.
Относительный путь для заданного пути будет вычисляться относительно каталога, указанного start.Значение этого параметра по умолчанию — os. curdir, который является константой st кольцо, используемое операционной системой для ссылки на текущий каталог.

Объект, подобный пути, представляет собой строку или байтовый объект, представляющий путь.

Тип возвращаемого значения: Этот метод возвращает строковое значение, представляющее относительный путь к заданному пути из начального каталога.0222

Пример:

Чтобы получить родительский каталог в соответствии с указанными пользователем уровнями, мы создадим функцию getParent() , которая будет принимать путь и уровни как аргументы. Внутри функции цикл for будет повторять числа времени level + 1 , а внутри цикла for loop os.path.dirname () . Вызов этой функции внутри цикла for даст нам отправную точку, из которой os.path.relpath() даст относительный путь к файлу.

Ниже приведена реализация.


# геттер Python
# родительский каталог



import os.path


# функция для получения родителя

def getParent (путь, уровни = 1 ):

общий = путь


# Использование цикла for для получения

# начальной точки, необходимой для

# os.path.relpath()

for i in диапазон (уровни + 1 ):


# Начальная точка

common = os.path.dirname (общий)

# Родительский каталог перед указанным

# уровень

return os.path.relpath (path, common)


path = ’D:/Проекты Pycharm/Py thon.Engineering / Nikhil / gfg.txt’

print (getParent (path, 2 ))

Выход :