برای اینکار باید از defaultdict استفاده کنید هر فایل را به مسیر و نام فایل و پسوند تقسیم کنید سپس مسیر و نام فایل را join کنید و به عنوان کلید در نظر بگیرید و پسوند هم به عنوان value باشه.
groups = defaultdict(list)
for filename in files_name:
tokens = FileUtility.getFileTokens(filename)
groups[os.path.join(tokens[0],tokens[1])].append(tokens[2])
پروسس کردن دیکشنری هم به صورت زیر:
for group, items in groups.items():
print(f'{group} {items}')