2010-04-22 5 views

답변

12

glob은 정규 표현식을 지원하지 않으므로, 일치 문자열 생성에 무차별 대항해야합니다. 한 가지 방법은 확장됩니다 문자 []의 범위는 사실을 활용하는 것입니다

C:\temp\py>mkdir 123456789

C:\temp\py>C:\Python26\python.exe 
Python 2.6.2 Stackless 3.1b3 060516 (release26-maint, Apr 14 2009, 21:19:36) [M 
C v.1500 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import glob 
>>> glob.glob('./' + ('[0-9]' * 14)) 
['.\\123456789'] 
>>> 

내가 파이썬에서, 정수와 문자열을 곱하여 해당 문자열에서 N 결과 반복되고 있다는 사실을 이용했다 n 번. 답장을

>>> [path for path in glob.iglob('./' + ('[0-9]' * 14))] 
['.\\11223344556677', '.\\123456789'] 
>>> [path for path in glob.iglob('./' + ('[0-9]' * 14)) if os.path.isdir(path)] 
['.\\123456789'] 
+0

감사 : 물론

, 당신은 가서 주어진 경로가 디렉토리가 실제로 있는지 확인하는 검사에 넣어 할 수 있습니다. 지금은 이것을 사용했습니다 : [0-9] [0-9] [0-9] [0-9] [0-1] [0-9] [0-3] [0-9] [ 0-2] [0-9] [0-2] [0-9] [0-6] [0-9] 기본적으로 설명 된 형식에 대한 규칙이 있습니다 (월, 일, 시간 분 제한). 그들의 각각의 범위), 나는 단지 그것을하는 더 좋은 방법이 있는지 확실하지 않았다. – mikec

+7

@mikec :''[0-9] '* 14'를 고수하고'datetime.strptime'으로 성공적으로 파싱 할 수있는 타임 스탬프 만 허용하는 것이 더 간단 할 수도 있습니다. 타임 스탬프가 유효합니다. –