在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?
答案 0 :(得分:4)
要比较您应首先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
是同一个对象,而不是比较实际路径。
答案 1 :(得分:2)
对于使用比 OP 更新的 Python 版本的任何人:从 Python 3.5 开始,您还可以使用 path1.samefile(path2)
,请参阅 documentation。
答案 2 :(得分:0)
在this page上尝试一些功能。我想你可以调用os.path.normpath(path)或类似的函数。