From 74ad981d98e37640477ef0a50cfe5724655fd60c Mon Sep 17 00:00:00 2001 From: Julian Freeman Date: Mon, 25 Aug 2025 11:41:42 -0400 Subject: [PATCH] check prefix update --- check_prefix.py | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/check_prefix.py b/check_prefix.py index aba8b2b..d846728 100644 --- a/check_prefix.py +++ b/check_prefix.py @@ -1,5 +1,26 @@ import os import datetime +from collections import defaultdict + +def build_tree(paths): + """将相对路径列表转换为树形字典""" + tree = lambda: defaultdict(tree) + root = tree() + for path in paths: + parts = path.split(os.sep) + current = root + for part in parts: + current = current[part] + return root + +def print_tree(d, indent=""): + """递归打印树结构""" + last_key = list(d.keys())[-1] if d else None + for i, key in enumerate(d): + connector = "└── " if key == last_key else "├── " + print(indent + connector + key) + new_indent = indent + (" " if key == last_key else "│ ") + print_tree(d[key], new_indent) def main(): # 输入目录 @@ -22,13 +43,15 @@ def main(): for root, _, files in os.walk(dir_path): for f in files: if not f.startswith(prefix): - not_matching_files.append(os.path.join(root, f)) + full_path = os.path.join(root, f) + rel_path = os.path.relpath(full_path, dir_path) # 相对路径 + not_matching_files.append(rel_path) # 输出结果 if not_matching_files: print("以下文件不符合命名前缀要求:\n") - for file in not_matching_files: - print(file) + tree = build_tree(not_matching_files) + print_tree(tree) else: print("✅ 所有文件名都符合前缀要求。")