ast*_*ada 14 python bash shell glob expansion
我有python 2.7,我试图发出:
glob('{faint,bright*}/{science,calib}/chip?/')
Run Code Online (Sandbox Code Playgroud)
我没有获得匹配,但是从shell echo {faint,bright*}/{science,calib}/chip?
给出:
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
Run Code Online (Sandbox Code Playgroud)
我的表情有什么问题?
将通配符与大括号扩展相结合。
pip install braceexpand
Run Code Online (Sandbox Code Playgroud)
样本:
pip install braceexpand
Run Code Online (Sandbox Code Playgroud)
支撑_glob('/usr/bin/{x,z}*k')
['/usr/bin/xclock', '/usr/bin/zipcloak']
由于Python{}
不支持glob()
,你可能想要的是类似的东西
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)
Run Code Online (Sandbox Code Playgroud)