Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Brace expansion in python glob

I have python 2.7 and am trying to issue:

glob('{faint,bright*}/{science,calib}/chip?/')

I obtain no matches, however from the shell echo {faint,bright*}/{science,calib}/chip? gives:

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

What is wrong with my expression?

like image 766
astabada Avatar asked Apr 10 '14 18:04

astabada


1 Answers

{..} is known as brace expansion, and is a separate step applied before globbing takes place.

It's not part of globs, and not supported by the python glob function.

like image 156
that other guy Avatar answered Oct 02 '22 10:10

that other guy