首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用pathlib来处理两种模式?

如何使用pathlib来处理两种模式?
EN

Stack Overflow用户
提问于 2018-01-10 13:51:08
回答 5查看 8.5K关注 0票数 9

我希望找到两种类型的文件,具有两种不同的扩展名:.jl.jsonlines。我使用

代码语言:javascript
复制
from pathlib import Path
p1 = Path("/path/to/dir").joinpath().glob("*.jl")
p2 = Path("/path/to/dir").joinpath().glob("*.jsonlines")

但是我希望p1p2是一个变量,而不是两个。我应该首先合并p1p2吗?有没有其他方法来连接glob的模式?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2018-01-10 14:11:56

试试这个:

代码语言:javascript
复制
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)
票数 0
EN

Stack Overflow用户

发布于 2019-09-12 00:06:15

代码语言:javascript
复制
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)
票数 17
EN

Stack Overflow用户

发布于 2019-12-03 23:13:36

如果你可以安装一个包,请查看wcmatch。它可以为Python PathLib打补丁,这样你就可以一次运行多个匹配:

代码语言:javascript
复制
from wcmatch.pathlib import Path
paths = Path('path/to/dir').glob(['*.jl', '*.jsonlines'])
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48181073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档