Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

In cấu trúc cây thư mục trong Python (os.walk)

Dùng os.walk() duyệt đệ quy, in đường dẫn tuyệt đối hoặc tương đối.

Ví dụ in cây đơn giản

import os

def print_tree(root):
    for dirpath, dirnames, filenames in os.walk(root):
        # Tính độ sâu để indent
        level = dirpath.replace(root, '').count(os.sep)
        indent = '  ' * level
        print(f"{indent}{os.path.basename(dirpath)}/")
        for f in filenames:
            print(f"{indent}  {f}")

print_tree('.')

Kết quả mẫu

.
  file1.txt
  subdir/
    file2.txt
    subsub/
      file3.txt

Python 3.12+: os.walk(top_down=True, onerror=...)

Tree đẹp hơn: dùng thư viện tree (external) hoặc rich.tree.

from rich.tree import Tree
from pathlib import Path

tree = Tree(".")
for p in Path('.').rglob('*'):
    tree.add(str(p.relative_to('.')))
print(tree)