首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >巨蟒球体中的支撑膨胀

巨蟒球体中的支撑膨胀
EN

Stack Overflow用户
提问于 2014-04-10 18:55:04
回答 5查看 7.9K关注 0票数 20

我有python 2.7,并试图发布:

代码语言:javascript
复制
glob('{faint,bright*}/{science,calib}/chip?/')

我没有获得匹配,但是从shell echo {faint,bright*}/{science,calib}/chip?给出:

代码语言:javascript
复制
faint/science/chip1 faint/science/chip2 faint/calib/chip1 faint/calib/chip2 bright1/science/chip1 bright1/science/chip2 bright1w/science/chip1 bright1w/science/chip2 bright2/science/chip1 bright2/science/chip2 bright2w/science/chip1 bright2w/science/chip2 bright1/calib/chip1 bright1/calib/chip2 bright1w/calib/chip1 bright1w/calib/chip2 bright2/calib/chip1 bright2/calib/chip2 bright2w/calib/chip1 bright2w/calib/chip2

我的表情怎么了?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-04-11 00:47:28

由于Python中的{}不受glob()的支持,所以您可能想要的是

代码语言:javascript
复制
import os
import re

...

match_dir = re.compile('(faint|bright.*)/(science|calib)(/chip)?')
for dirpath, dirnames, filenames in os.walk("/your/top/dir")
    if match_dir.search(dirpath):
        do_whatever_with_files(dirpath, files)
        # OR
        do_whatever_with_subdirs(dirpath, dirnames)
票数 5
EN

Stack Overflow用户

发布于 2016-07-20 16:27:20

将球状和支撑展开相结合。

代码语言:javascript
复制
pip install braceexpand

示例:

代码语言:javascript
复制
from glob import glob
from braceexpand import braceexpand

def braced_glob(path):
    l = []
    for x in braceexpand(path):
        l.extend(glob(x))
            
    return l
代码语言:javascript
复制
>>> braced_glob('/usr/bin/{x,z}*k')  
['/usr/bin/xclock', '/usr/bin/zipcloak']
票数 10
EN

Stack Overflow用户

发布于 2014-04-10 19:03:22

{..}被称为支撑展开,它是在球化发生之前应用的一个单独的步骤。

它不是globs的一部分,也不受python函数的支持。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22996645

复制
相关文章

相似问题

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