не рекурсивно
Для извлечения файлов (и только файлов) каталога "path" с использованием "globexpression":
list_path = [i for i in os.listdir(path) if os.path.isfile(os.path.join(path, i))]
result = [os.path.join(path, j) for j in list_path if re.match(fnmatch.translate(globexpression), j, re.IGNORECASE)]
рекурсивно
с помощью walk:
result = []
for root, dirs, files in os.walk(path, topdown=True):
result += [os.path.join(root, j) for j in files \
if re.match(fnmatch.translate(globexpression), j, re.IGNORECASE)]
Лучше также скомпилировать регулярное выражение, поэтому вместо
re.match(fnmatch.translate(globexpression)
сделайте (до цикла):
reg_expr = re.compile(fnmatch.translate(globexpression), re.IGNORECASE)
и затем заменитев цикле:
result += [os.path.join(root, j) for j in files if re.match(reg_expr, j)]