用 Path.samefile(other_path) 最可靠,它通过 inode(Unix/Linux/macOS)或卷序列号+文件索引(Windows)判断是否为同一文件实体,自动解析符号链接,要求路径存在。
用 pathlib 判断两个路径是否指向同一个真实文件,核心是使用 路径的规范绝对路径 + 文件系统 inode(或等价标识) 进行比对。单纯比较字符串路径不可靠(符号链接、相对路径、大小写、挂载点等都会导致误判)。
resolve() + samefile() 最可靠Path.samefile(other_path) 是 pathlib 提供的专门方法,内部调用操作系统级的 os.path.samefile(),通过比较 inode(Unix/Linux/macOS)或 volume serial number + file index(Windows)来判断是否为同一文件实体。
samefile() 会解析到目标文件再比对FileNotFoundError
resolve() 确保路径合法,但 samefile() 内部已做类似工作,通常可直接调用示例:
>>> from pathlib import Pathresolve() 能消除 .、..、符号链接,生成唯一的绝对路径,但它不能替代 samefile():

resolve() 后可能看起来一样,但实际指向不同文件(极少见,但存在)resolve() 行为与符号链接不同,samefile() 仍能正确识别底层文件实体p1.resolve() == p2.resolve() —— 这只是必要非充分条件p1.exists() and p2.exists(),避免异常中断逻辑FileNotFoundError 或 OSError
strict=False(Python 3.10+)让 resolve() 在中间路径不存在时不报错,但 samefile() 仍要求最终目标存在以下方法均不可靠:
str(p1) == str(p2):忽略路径规范化,大小写、斜杠风格、相对性全影响结果p1.resolve() == p2.resolve():无法识别硬链接(不同路径可指向同一 inode)、某些重解析点、NFS 边界问题