比较文件相等性的最佳方法是什么?

时间:2014-02-09 08:28:40

标签: python os.path

说我有两条路:

derp.py
/lol/lel/doge/derp.py

如何检查两个路径是否都引用同一个文件?我已经看到了两种方法,但是它们都有任何缺点。

os.path.samefile("derp.py", "/lol/lel/doge/derp.py")
os.path.abspath("derp.py") == os.path.abspath("/lel/lol/doge/derp.py")

我并不特别关心以下符号链接或其中一个文件是否存在。

2 个答案:

答案 0 :(得分:2)

如果您不关心是否存在任何文件,那么os.path.samefile()将不适合您,因为它实际上比较了i-node编号。这使您无法比较绝对路径。

答案 1 :(得分:0)

前者遵循符号链接,而后者则不遵守。如果您的意图是这些文件是同一个文件,则使用samefile是“正确”的方式。如果您只想检查路径是否指向同一位置(忽略符号链接),则可以使用后者。