AzLearn

تمرين إعادة البناء

مكتشف أسماء الملفات المكررة

اعثر على أسماء الملفات المتكررة في مجلدات مختلفة.

python ~15 دقيقة مبتدئ
أعد بناء الكود Rebuild

هذا هو الكود. اكتبه بنفسك.

الكود المرجعي
import argparse
from collections import defaultdict
from pathlib import Path


def group_files_by_name(root: Path) -> dict[str, list[Path]]:
    matches: dict[str, list[Path]] = defaultdict(list)
    for path in root.rglob("*"):
        if path.is_file():
            matches[path.name].append(path)
    return {name: paths for name, paths in matches.items() if len(paths) > 1}


def main() -> None:
    parser = argparse.ArgumentParser(description="Find duplicate file names in a folder tree.")
    parser.add_argument("root", nargs="?", type=Path, default=Path("."))
    args = parser.parse_args()

    duplicates = group_files_by_name(args.root)
    for name, paths in sorted(duplicates.items()):
        print(f"\n{name}")
        for path in sorted(paths):
            print(f"  {path}")


if __name__ == "__main__":
    main()
اكتب هنا