2009-02-06 60 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