glob 模式 PYTHON - 检查模式是否与给定路径匹配

问题描述

大家好,我有一个 Json 格式的 glob 模式列表:

{
    "Project/*","Sales","Test"
}

并且我将路径保存为名为 log_paths 的数组中的字符串,它们看起来像这样:

[
    "Project/component_x/doc/doc.rst","Project/component_y/doc/doc.rst","Project/component_z/doc/doc.rst","Sales/doc/doc.rst","Sales/doc/architecture.pml","Test/test_cases/test.py","Test/test2020/test2020.py",]

我想检查我的 glob 模式是否与我的路径匹配。

如果匹配,我只想像 json 一样只保存开头,但 * 我也想要路径的一部分。

只保存:

Project/component_x
Project/component_y
Project/component_z

Sales
Sales

Test
Test

这可能吗?

解决方法

import glob
for name in glob.glob('Project/*'):
    print name

for a in glob.glob('Sales'):
    print 'Sales'

for b in glob.glob('Test'):
    print 'Test'

编辑:在 log_paths 中列出

import glob
for pat in log_paths:
    for x in glob.glob(pat):
        print x

对于更花哨的东西,我建议您学习如何使用 re 正则表达式来提取您真正想要的文件路径部分。 glob 不是为此而设计的