تمرين إعادة البناء
مكتشف أسماء الملفات المكررة
اعثر على أسماء الملفات المتكررة في مجلدات مختلفة.
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()اكتب هنا