2009-02-06 10 views
0

부분적으로 같은 이름의 폴더가 4 개 있는지 확인하기 위해 배열을 검사하는 프로그램을 만들려고합니다. 0103 (1월 3일)와 같은 날짜 그래서목록/배열 - 날짜 확인

, 0103-1, 0103-2, 0103-3 및 0103-4이 있어야합니다. 다른 폴더는 0107-1, 0107-2, 0107-3, 0107-4와 같습니다. 어떻게해야합니까? glob.glob (파이썬)과 와일드 카드를 사용하여 4 개의 일치 항목 만 있는지 생각했습니다.하지만이 방법이 마음에 들지 않습니다.

제안 사항?

+0

"배열"? 목록을 의미합니까? 디렉토리? –

+0

왜 정확히 glob.glob을 좋아하니? – sykora

답변

3
import os 

def myfunc(date, num): 
    for x in range(1, num+1): 
     filename = str(date) + "-" + str(x) 
     if os.path.exists(filename): 
      print(filename+" exists") 
     else: 
      print(filename+" does not exist") 

myfunc('0102', 3); 

0102-1은 여기를 찾을 수있는 순진한 방법

0102-2

0102-3가

+0

s/.exists/.isdir / – jfs

0

존재하지 않는 존재하지 않는 존재하지 않는 문자열 배열이 주어지는 가장 큰 공통적 인 하위 문자열 :

>>> arr = ['0102-1', '0102-2', '0102-3'] 
>>> for i in reversed(range(len(arr[0]))): 
...  for s in arr: 
...   if not s.startswith(arr[0][:i+1]): 
...   break 
...  else: 
...   break 
... else: 
...  if i == 0: i = -1 
... 
>>> arr[0][:i+1] 
'0102-' 
>>> i 
4