TwT-6's picture
Upload 2667 files
256a159 verified
raw
history blame
628 Bytes
import fnmatch
import os
from typing import List, Union
def match_files(path: str,
pattern: Union[str, List],
fuzzy: bool = False) -> List:
if isinstance(pattern, str):
pattern = [pattern]
if fuzzy:
pattern = [f'*{p}*' for p in pattern]
files_list = []
for root, _, files in os.walk(path):
for name in files:
for p in pattern:
if fnmatch.fnmatch(name.lower(), p.lower()):
files_list.append([name[:-3], os.path.join(root, name)])
break
return sorted(files_list, key=lambda x: x[0])