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

Python 什么';比较文件相等性的最佳方法是什么?,python,os.path,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") 我并不特别关心以下符号链接或其中一个文件是否不存在。前者坚持符号链接,而后者不坚持。如果您希望

假设我有两条路径:

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")

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

前者坚持符号链接,而后者不坚持。如果您希望这些文件是同一个文件,那么使用
samefile
是“正确”的方法。如果您只想检查路径是否指向同一位置(不考虑符号链接),可以使用后者。

如果您不关心是否存在任何文件,那么
os.path.samefile()
将不适用于您,因为它实际上比较i节点编号。这就给您留下了比较绝对路径的唯一选项。

首先,您必须定义“文件相等”。同样的内容?或者是同一个文件(符号链接)?我不介意你是比较内容,还是符号链接,或者只是比较路径(没有符号链接),我想所有这些都适合我。但是,描述一下这些方法的优缺点就好了。你说的“不在乎其中一个文件是否不存在”是什么意思?在这种情况下会发生什么?如果两个文件都不存在该怎么办?这可能会有所帮助:@KarlKnechtel如果其中一个文件不存在,那么文件当然就不一样了!(但其中一个应该永远存在。)谢谢:)这看起来是正确的答案。如果几个小时内没有更好的,将标记为已接受。