Список / Массивы - Проверить даты - PullRequest
0 голосов
/ 06 февраля 2009

Я пытаюсь создать программу, которая проверяет массив, чтобы убедиться в наличии четырех папок с частично одинаковыми именами.

Так

Для даты, такой как 0103 (3 января), должно быть 0103-1, 0103-2, 0103-3 и 0103-4. Другие папки, такие как 0107-1, 0107-2, 0107-3, 0107-4. Как мне это сделать? Я думал об использовании glob.glob (python) и подстановочных знаков, чтобы убедиться, что есть только четыре совпадения ... но мне не нравится этот метод.

Есть предложения?

Ответы [ 2 ]

3 голосов
/ 06 февраля 2009
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 голосов
/ 06 февраля 2009

Вот наивный способ найти наибольшую общую ведущую подстроку из массива строк:

>>> 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...