说我有两条路:
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")
我并不特别关心以下符号链接或其中一个文件是否存在。
答案 0 :(得分:2)
如果您不关心是否存在任何文件,那么os.path.samefile()
将不适合您,因为它实际上比较了i-node编号。这使您无法比较绝对路径。
答案 1 :(得分:0)
前者遵循符号链接,而后者则不遵守。如果您的意图是这些文件是同一个文件,则使用samefile
是“正确”的方式。如果您只想检查路径是否指向同一位置(忽略符号链接),则可以使用后者。