我正试图遍历如下目录树:
from pathlib import Path
# ...
curr = Path(os.getcwd())
while True:
# do something with curr
if curr is curr.anchor:
break
curr = curr.parent
令我惊讶的是,即使是str(curr) == str(curr.anchor)
,表达式curr is curr.anchor
和curr == curr.anchor
都返回False
,所以我得到了一个无限循环。
解决这个问题的正确方法真的会改变以下情况吗:
if str(curr) == str(curr.anchor):
break
我很好奇为什么要使用pathlib。路径相等运算符是这样工作的,但我也对主要问题的更多Python解决方案持开放态度。
curr
是一个Path。curr.anchor
是一个字符串。字符串和Path将不相等,并且肯定不会是同一个对象。