2009-02-06 56 views
0

我試圖做一個程序,檢查一個數組,以確保有四個文件夾部分相同的名稱。列表/數組 - 檢查日期

所以

對於像0103(1月3日)的日期,應該是0103-1,0103-2,0103-3和0103-4。其他文件夾類似於0107-1,0107-2,0107-3,0107-4。我如何去做這件事?我想過使用glob.glob(python)和通配符來確保只有四個匹配...但我不喜歡這種方法。

有什麼建議嗎?

+0

「一個數組」?你的意思是列表嗎?目錄? – 2009-02-06 02:39:20

+0

爲什麼你不喜歡glob.glob? – sykora 2009-02-06 02:40:42

回答

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

這裏找到一個簡單的方式給定一串字符串的最大常見前導子串:

>>> 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