【发布时间】:2018-06-25 22:24:39
【问题描述】:
我有一个包含几个子目录的目录。在每个子目录中都有几个文件,我想获取文件名中包含单词“raw”并以“.txt”结尾的文件的完整路径(在每个目录中都有一个带有“原始”在它的名字中)。
有人知道如何用 python 3 优雅地做到这一点吗?
【问题讨论】:
标签: python-3.x
我有一个包含几个子目录的目录。在每个子目录中都有几个文件,我想获取文件名中包含单词“raw”并以“.txt”结尾的文件的完整路径(在每个目录中都有一个带有“原始”在它的名字中)。
有人知道如何用 python 3 优雅地做到这一点吗?
【问题讨论】:
标签: python-3.x
我们可以使用Path.resolve方法获取目录的绝对路径,然后使用Path.glob收集代表我们要检索的文件路径的Path对象。
from pathlib import Path
paths = [path for path in Path('path/to/dir').resolve().glob("**/*raw*.txt")]
这里您的搜索由**/*raw*.txt 指定。这将返回一定数量的Path 对象(具体类型取决于您使用的操作系统)。
如果你想要它们作为字符串,你可以替换上面的[str(path) for path in ..]
【讨论】: