我希望找到两种类型的文件,具有两种不同的扩展名:.jl和.jsonlines。我使用
from pathlib import Path
p1 = Path("/path/to/dir").joinpath().glob("*.jl")
p2 = Path("/path/to/dir").joinpath().glob("*.jsonlines")但是我希望p1和p2是一个变量,而不是两个。我应该首先合并p1和p2吗?有没有其他方法来连接glob的模式?
发布于 2018-01-10 14:11:56
试试这个:
from os.path import join
from glob import glob
files = []
for ext in ('*.jl', '*.jsonlines'):
files.extend(glob(join("path/to/dir", ext)))
print(files)发布于 2019-09-12 00:06:15
from pathlib import Path
exts = [".jl", ".jsonlines"]
mainpath = "/path/to/dir"
# Same directory
files = [p for p in Path(mainpath).iterdir() if p.suffix in exts]
# Recursive
files = [p for p in Path(mainpath).rglob('*') if p.suffix in exts]
# 'files' will be a generator of Path objects, to unpack into strings:
list(files)发布于 2019-12-03 23:13:36
如果你可以安装一个包,请查看wcmatch。它可以为Python PathLib打补丁,这样你就可以一次运行多个匹配:
from wcmatch.pathlib import Path
paths = Path('path/to/dir').glob(['*.jl', '*.jsonlines'])https://stackoverflow.com/questions/48181073
复制相似问题