我需要评估两个字符串是否引用同一个目录(由于可能的虚拟链接等原因,做一个简单的比较是不够好的)
我已经研究了filecmp
,但是filecmp.cmp
似乎只对文件有效,而不是目录。filecmp.dircmp
似乎并不完全符合我的目的。你知道吗
因此,我现在是这样做的:
if os.path.realpath(old_path) == os.path.realpath(new_path):
raise ValueError('Need different path!')
有人有更好的主意吗?是否有任何边缘的情况下,这将不工作?你知道吗
Tags:
一种可能的边缘情况是多个挂载点/绑定挂载。如果您可以访问Linux计算机,请以root用户身份尝试:
/tmp/a和/tmp/b路径现在引用相同的目录:
在你的情况下,如果不知道为什么要检查这个等式,很难判断这是否是一个问题。如果这只是一个理智的检查,你最初的比较似乎很合理。你知道吗
否则,如果您的平台支持,您可以尝试使用os.stat()比较inode编号。相同的目录应该有相同的索引节点号。你知道吗
相关问题 更多 >
编程相关推荐