Проверьте, является ли каталог корнем (файловой системы)Python

Программы на Python
Anonymous
Проверьте, является ли каталог корнем (файловой системы)

Сообщение Anonymous »

У меня есть скрипт, который ищет каталог, содержащий определенный файл, начиная с текущего каталога и поднимаясь вверх по дереву (представьте, что вы пытаетесь выяснить, где находится каталог .git).

Мой метод выглядит так:

Код: Выделить всё

def getDir(self,cwd):
path = os.path.abspath(cwd)
if not os.path.isdir(path):
raise RuntimeError("getDir should not be run on files")
if FILE in os.listdir(path):
return path
parent = os.path.join(path, os.path.pardir)
if os.access(parent, os.R_OK) and os.access(parent, os.X_OK):
return self.getDir(parent)
else
return None
Теперь проблема с этим методом заключается в том, что, если он не может найти каталог, он зацикливается (и в конечном итоге переполняет стек), потому что, очевидно, объединяется / и . . снова возвращает вам /. Я пробовал сравнивать путь с родительским или их представителями, но это не сработало (они всегда были разными). Мой обходной путь на данный момент — включить счетчик глубины в рекурсивный метод и остановиться на каком-то случайном максимальном пороге.

Поэтому у меня вопрос: существует ли надежный кроссплатформенный способ проверить, достиг ли я корня файловой системы?

Подробнее здесь: https://stackoverflow.com/questions/982 ... ystem-root

Вернуться в «Python»