【发布时间】:2017-10-02 16:31:39
【问题描述】:
假设我有一个符号链接的子目录,如下所示:
subdir/
folder/
readme.txt
symlink/ => ../hidden/
hidden/
readme.txt
如果我运行以下代码:
>>> from pathlib import Path
>>> list(Path('./subdir/').glob('**/readme.txt'))
我希望结果是:
subdir/folder/readme.txt
subdir/symlink/readme.txt
但实际结果是:
subdir/folder/readme.txt
我发现这是因为(出于某种未记录的原因)** 运算符不遵循符号链接。
有没有办法切实改变这种配置?
【问题讨论】:
-
这很奇怪,因为有一个 open issue 要求
glob选择不跟随符号链接。 -
@JeremyMcGibbon 你永远无法取悦所有人,嘿?
-
此行为似乎是修复此问题的副作用:bugs.python.org/issue26012。 pathlib.py 的
_RecursiveWildcardSelector类中的方法_iterate_directories()显式忽略符号链接。
标签: python python-3.x symlink