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)