在Python 3.4和Ubuntu 14.04中使用此代码不会返回True

import pathlib

path1 = pathlib.Path("/tmp")
path2 = pathlib.Path("/tmp/../tmp")

print(path1 == path2)
# gives False

print(path1 is path2)
# gives False


但是通常“ / tmp”和“ /tmp/../tmp”是同一文件夹。那么如何确保比较返回True?

最佳答案

要进行比较,您应该首先使用resolve路径,或者也可以使用os.path.samefile。例:

print(path1.resolve() == path2.resolve())
# True

import os
print(os.path.samefile(str(path1), str(path2)))
# True


顺便说一句,path1 is path2检查path1是否与path2是同一对象,而不是比较实际路径。

10-06 05:19