Функция соответствия найти файл в имени файла. один знак заменяет нубер - PullRequest
0 голосов
/ 08 апреля 2020

Мне нужно создать шаблон, который будет проверять, соответствуют ли данные в базе данных поиску в примерах, которые я ищу для поиска * txt файлов. files = "*" означает каждый файл и пример поиска, в котором у меня есть "?" и он заменит все остальные символы в файле: для txt i * я создал так:

 if pattern=='*':
        return True    
if filename.find(pattern): #pattern==*.txt
        return True

теперь мне нужно вызвать log12.txt i log1.txt i форма запроса: log ??. txt i log? .txt

('log12.txt', 'log??.txt') #==True

моя попытка хороша только в том случае, если? == 1, ошибка в '??' или число другое 1

 for i in filename:
        if filename[i]==pattern[i]:
            odp=True
        if pattern[i]=='?':    #czy w tym miejscu szukanego pliku jest znak
             if filename[i].isdigit():
                continue#czy w tym samym indeksie pliku jest cyfra
        else:
            odp=False
            break
        odp=True
                    #czy znaki w stringu są takie same
    else:
        odp=False
    return odp
print("Example:")
print(unix_match("log1.txt","log?.txt"))#ok
print(unix_match("log55.txt","log??.txt"))#error
print(unix_match("log2.txt","log?.txt"))#error
...