6
YYYYMMDDHHMMSS (timestamp) 패턴의 하위 폴더가있는 폴더가 있습니다.python glob을 사용하여 14 자리 숫자의 폴더를 찾으십시오.
그 패턴과 일치하는 폴더 만 선택하려면 glob를 사용하고 싶습니다.
YYYYMMDDHHMMSS (timestamp) 패턴의 하위 폴더가있는 폴더가 있습니다.python glob을 사용하여 14 자리 숫자의 폴더를 찾으십시오.
그 패턴과 일치하는 폴더 만 선택하려면 glob를 사용하고 싶습니다.
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-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
@mikec :''[0-9] '* 14'를 고수하고'datetime.strptime'으로 성공적으로 파싱 할 수있는 타임 스탬프 만 허용하는 것이 더 간단 할 수도 있습니다. 타임 스탬프가 유효합니다. –