12345678910111213141516171819202122232425262728293031323334353637 |
- import os
- def print_tree(root_path, ignore_dirs=None, prefix=""):
- """
- 打印目录树(美观版)
- :param root_path: 目录绝对路径
- :param ignore_dirs: 要忽略的目录列表
- :param prefix: 树状前缀(递归用)
- """
- if ignore_dirs is None:
- ignore_dirs = []
- try:
- entries = [e for e in os.listdir(root_path) if e not in ignore_dirs]
- except PermissionError:
- print(prefix + "└─ [Permission Denied]")
- return
- entries.sort()
- total = len(entries)
- for idx, entry in enumerate(entries):
- path = os.path.join(root_path, entry)
- is_last = (idx == total - 1)
- connector = "└─ " if is_last else "├─ "
- print(prefix + connector + entry)
- if os.path.isdir(path):
- extension = " " if is_last else "│ "
- print_tree(path, ignore_dirs, prefix + extension)
- if __name__ == "__main__":
- root_dir = input("请输入目录绝对路径: ").strip()
- ignore = input("请输入要忽略的目录,用逗号分隔(可留空): ").strip()
- ignore_list = [d.strip() for d in ignore.split(",") if d.strip()]
-
- # 打印根目录
- print(os.path.basename(root_dir))
- print_tree(root_dir, ignore_list)
|