在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
是同一对象,而不是比较实际路径。