glob
은 후드 아래에서 fnmatch
을 사용합니다. 당신은 직접 사용할 수 있습니다
import fnmatch, os
names = os.listdir("/Users/smcho/Desktop/bracket/[10,20]")
print fnmatch.filter(names, '*.txt')
또는 (파이썬 3를 포함하여 2.3 이상이 적어도 파이썬에 존재) glob.glob1()
이 (비공개)를 사용하여 : 여기
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)
출처
2010-04-07 19:15:25
jfs
@ 로저 : 고마워, 고쳐 놨어. – interjay
@ ~ unutbu : 아니요,'[[10,20]]'는'[102,'뒤에']'문자를 찾습니다. 나는 괄호를 두 배로 만들지 않고 문자 클래스를 만들었습니다.'[[]'는 문자'['만 포함하는 문자 클래스입니다. – interjay
아 맞습니다. 당신이 올바른지. 설명 해줘서 고마워. – unutbu