تمرين إعادة البناء
File Extension Counter
أعد كتابة سكربت Python يحصي امتدادات الملفات داخل مجلد.
python
~10 دقيقة
مبتدئ
أعد بناء الكود
Rebuild
هذا هو الكود. اكتبه بنفسك.
الكود المرجعي
import argparse
from collections import Counter
from pathlib import Path
def files_in(folder: Path, recursive: bool) -> list[Path]:
pattern = "**/*" if recursive else "*"
return [path for path in folder.glob(pattern) if path.is_file()]
def extension_for(path: Path) -> str:
return path.suffix.lower() or "[no extension]"
def count_extensions(folder: Path, recursive: bool) -> Counter[str]:
return Counter(extension_for(path) for path in files_in(folder, recursive))
def main() -> None:
parser = argparse.ArgumentParser(description="Count file extensions in a folder.")
parser.add_argument("folder", nargs="?", default=".", help="Folder to scan")
parser.add_argument("-r", "--recursive", action="store_true", help="Scan subfolders")
args = parser.parse_args()
folder = Path(args.folder)
if not folder.is_dir():
raise SystemExit(f"Not a folder: {folder}")
counts = count_extensions(folder, args.recursive)
if not counts:
print("No files found.")
return
for extension, total in counts.most_common():
print(f"{extension:15} {total}")
if __name__ == "__main__":
main()اكتب هنا