wip: 2026-08-11 工作树快照(docs/memory/h5.py/scripts 等 447 项未评审改动,安全提交到 feat 分支)
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""对 B 类(同名不同内容)细分:b1 同主题旧版本 / b2 同名不同主题(高危,删除即丢失)。"""
|
||||
import json, os, re
|
||||
|
||||
ROOT = r"D:\资料\03-项目开发\wecom_it_smart_desk\docs"
|
||||
data = json.load(open(r"D:\资料\03-项目开发\wecom_it_smart_desk\docs_cmp_result2.json", encoding="utf-8"))
|
||||
|
||||
TEXT_EXT = {".md", ".mermaid", ".txt", ".json", ".py", ".conf", ".yml", ".yaml"}
|
||||
|
||||
def first_title(p):
|
||||
ext = os.path.splitext(p)[1].lower()
|
||||
if ext not in TEXT_EXT:
|
||||
return None
|
||||
try:
|
||||
with open(p, encoding="utf-8", errors="ignore") as f:
|
||||
for _ in range(12):
|
||||
line = f.readline()
|
||||
if not line:
|
||||
break
|
||||
s = line.strip().lstrip("#%").strip()
|
||||
if s and not s.startswith(("```", "---", ">")):
|
||||
return s[:60]
|
||||
except Exception:
|
||||
pass
|
||||
return None
|
||||
|
||||
b1, b2, unknown = [], [], []
|
||||
for row in data["name_diff"]:
|
||||
oldrel, _, osz, newrel, _, nsz = row
|
||||
op = os.path.join(ROOT, oldrel)
|
||||
np_ = os.path.join(ROOT, newrel)
|
||||
ot, nt = first_title(op), first_title(np_)
|
||||
if ot is None or nt is None:
|
||||
unknown.append((oldrel, newrel, osz, nsz))
|
||||
elif ot == nt:
|
||||
b1.append((oldrel, newrel, osz, nsz, ot))
|
||||
else:
|
||||
b2.append((oldrel, newrel, ot, nt, osz, nsz))
|
||||
|
||||
print(f"B 类合计 {len(data['name_diff'])}")
|
||||
print(f" b1 同名同主题(新结构为演进版,旧版可删): {len(b1)}")
|
||||
print(f" b2 同名【不同主题】(⚠ 删除即丢失,必须改名抢救): {len(b2)}")
|
||||
print(f" b3 无法自动判定(二进制/无标题): {len(unknown)}")
|
||||
|
||||
print("\n===== ⚠ b2 高危:同名不同主题 =====")
|
||||
for oldrel, newrel, ot, nt, osz, nsz in b2:
|
||||
print(f" 旧 {oldrel} [{osz/1024:.1f}KB]\n 主题: {ot}")
|
||||
print(f" 新 {newrel} [{nsz/1024:.1f}KB]\n 主题: {nt}\n")
|
||||
|
||||
print("===== b1 同主题(新版通常更大=演进版) =====")
|
||||
for oldrel, newrel, osz, nsz, t in b1:
|
||||
mark = "新更大" if nsz > osz else ("旧更大⚠" if osz > nsz else "等大")
|
||||
print(f" - {oldrel} 旧{osz/1024:.1f}KB / 新{nsz/1024:.1f}KB {mark}")
|
||||
|
||||
if unknown:
|
||||
print("\n===== b3 需人工看 =====")
|
||||
for oldrel, newrel, osz, nsz in unknown:
|
||||
print(f" - {oldrel} [{osz/1024:.1f}KB] <-> {newrel} [{nsz/1024:.1f}KB]")
|
||||
|
||||
json.dump({"b1": b1, "b2": b2, "b3": unknown},
|
||||
open(r"D:\资料\03-项目开发\wecom_it_smart_desk\docs_cmp_result3.json", "w", encoding="utf-8"),
|
||||
ensure_ascii=False, indent=1)
|
||||
Reference in New Issue
Block a user