我尝试通过阅读文档来理解它,但是我仍然不了解recursive=True|False
和为什么需要写'*
'或'**
'之间的区别在路径名中。
答案 0 :(得分:1)
*
是文件名的通配符,您可以转到\path\*
检索path
或\path\*.txt
中的所有项目以检索所有文本文件。您还可以为单个字符通配符使用?
。
如果recursive
设置为true,则**
充当递归指示符,如果您使用\path\**\test?.*
,它将查找以test
开头且具有在path
的任何子文件夹内具有任意扩展名(例如test1,test2)之后的单个字符(由于**
)。
答案 1 :(得分:0)
**
在recursive=True
时具有递归目录匹配行为。
recursive=True
来切换 ON 模式。否则,**
就是两个单独的*
,每个匹配零个或多个字符。
直到最近glob
模块还不支持递归匹配,并且那里有很多代码可能已在模式中使用**
,因此Python核心开发人员不想破坏此类代码。
答案 2 :(得分:0)
如果路径名仅包含*
,则递归无效。如果递归为False,则**
与*
相同。
仅当路径名包含**
并且递归为True时,**
才会匹配任何文件。