glob
использует fnmatch
под капотом. Вы можете использовать его напрямую:
import fnmatch, os
names = os.listdir("/Users/smcho/Desktop/bracket/[10,20]")
print fnmatch.filter(names, '*.txt')
Или используя (непубличный) glob.glob1()
(он присутствует по крайней мере в Python 2.3+, включая Python 3):
import glob
print glob.glob1("/Users/smcho/Desktop/bracket/[10,20]", '*.txt')
Вот реализация glob.glob1
:
def glob1(dirname, pattern):
if not dirname:
dirname = os.curdir
if isinstance(pattern, unicode) and not isinstance(dirname, unicode):
dirname = unicode(dirname, sys.getfilesystemencoding() or
sys.getdefaultencoding())
try:
names = os.listdir(dirname)
except os.error:
return []
if pattern[0] != '.':
names = filter(lambda x: x[0] != '.', names)
return fnmatch.filter(names, pattern)