我有一个脚本,它搜索包含特定文件的目录,从当前目录开始并上到树(考虑尝试找出.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
现在这个方法的问题是,如果它找不到目录,它会循环(并最终堆栈溢出),因为显然加入/和..给你/再次.我尝试将路径与父母或他们的代表进行比较,但这不起作用(它们总是截然不同).我现在的解决方法是在递归方法中包含深度计数器并停在某个随机最大阈值处.
我的问题是,是否有一种可靠的跨平台方式来检查我是否已到达文件系统中的根目录?