AzLearn

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

طابع شجرة المجلدات

اطبع شجرة ملفات محدودة العمق مع تجاهل المجلدات المخفية اختيارياً.

python ~20 دقيقة متوسط
أعد بناء الكود Rebuild

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

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


def visible(path: Path, include_hidden: bool) -> bool:
    return include_hidden or not path.name.startswith(".")


def print_tree(root: Path, max_depth: int, include_hidden: bool, depth: int = 0) -> None:
    if depth > max_depth:
        return
    prefix = "  " * depth
    print(f"{prefix}{root.name}/" if root.is_dir() else f"{prefix}{root.name}")
    if not root.is_dir():
        return
    children = sorted(path for path in root.iterdir() if visible(path, include_hidden))
    for child in children:
        print_tree(child, max_depth, include_hidden, depth + 1)


def main() -> None:
    parser = argparse.ArgumentParser(description="Print a limited directory tree.")
    parser.add_argument("root", type=Path)
    parser.add_argument("--max-depth", type=int, default=2)
    parser.add_argument("--include-hidden", action="store_true")
    args = parser.parse_args()
    print_tree(args.root, args.max_depth, args.include_hidden)


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