我想(递归)检索目录内的文件列表(按扩展名过滤)。
我有下面的解决方案,但是我相信有一种更干净的方法可以做到这一点。我可能缺少一个简单的全局表达式,但是任何更好的解决方案都可以。在这种情况下,更好的是可读性(自我记录)而不是性能。
我知道这个示例非常简单,但是当然它是更复杂场景的一部分。
files = glob.glob('documents/*.txt') + glob.glob('documents/**/*.txt')
我希望类似
files = glob.glob('playbooks/(**/)?*.yml')
(仅举一个例子,不起作用)
答案 0 :(得分:1)
要在glob.glob()
中使用**
说明符,您需要将recursive
参数显式设置为True
,例如:
glob.glob('Documents/**/*.txt', recursive=True)
摘自官方文档:
如果递归为true,则模式“ **”将匹配任何文件以及零个或多个目录,子目录和目录的符号链接。如果此模式后接os.sep或os.altsep,则文件将不匹配。