تمرين إعادة البناء
طابع شجرة المجلدات
اطبع شجرة ملفات محدودة العمق مع تجاهل المجلدات المخفية اختيارياً.
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()اكتب هنا