- 공공기관2/3 작업본 + 오늘 제출 17곳 D~J 카테고리 셀병합 정상화 - 한국지역난방공사 옵션2(고아셀 F98 수정)+전행 높이17 - 제출_프리랜서2_2026-06-21.zip 생성(17개 xlsx, 2,468행) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
41 lines
1.7 KiB
Python
41 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
import json, io, os, sys, openpyxl
|
|
import _remerge
|
|
ROOT=r"D:\01.프로젝트\DB수집"
|
|
d=json.load(io.open(os.path.join(ROOT,"작업파일","_targets.json"),encoding="utf-8"))
|
|
which=sys.argv[1] if len(sys.argv)>1 else "work"
|
|
files=d[which]
|
|
out=io.open(os.path.join(ROOT,"작업파일","_remerge_report_%s.txt"%which),"w",encoding="utf-8")
|
|
def w(*a): out.write(" ".join(str(x) for x in a)+"\n");
|
|
done=skip=fail=changed=0
|
|
for rel in files:
|
|
p=os.path.join(ROOT,rel)
|
|
if "test" in os.path.basename(p).lower():
|
|
w("SKIP(test)",rel); skip+=1; continue
|
|
# KDHC already done
|
|
if "지역난방" in rel:
|
|
w("SKIP(KDHC done)",rel); skip+=1; continue
|
|
try:
|
|
wb=openpyxl.load_workbook(p); ws=wb.active; mc=ws.max_column; mr=ws.max_row; wb.close()
|
|
except Exception as e:
|
|
w("LOADERR",rel,e); fail+=1; continue
|
|
if mc<20 or mr<3:
|
|
w("SKIP(not collection mc=%d mr=%d)"%(mc,mr),rel); skip+=1; continue
|
|
try:
|
|
r=_remerge.process(p, apply=True, height=False)
|
|
except Exception as e:
|
|
w("EXC",rel,repr(e)); fail+=1; continue
|
|
if not r.get("ok"):
|
|
w("FAIL",rel,"rolledback=%s fails=%s"%(r.get("rolledback"),r.get("fails"))); fail+=1; continue
|
|
nc=r.get("n_change",0); orp=len(r.get("orphans",[]))
|
|
if r.get("nochange"):
|
|
w("OK-nochange",rel); done+=1
|
|
else:
|
|
w("OK changes=%d orphans=%d merges=%s"%(nc,orp,r.get("n_merges_after")),rel,
|
|
"| add="+str(r.get("add"))[:200])
|
|
done+=1;
|
|
if nc>0 or orp>0: changed+=1
|
|
out.write("\n=== SUMMARY %s: done=%d changed=%d skip=%d fail=%d (total %d) ===\n"%(which,done,changed,skip,fail,len(files)))
|
|
out.close()
|
|
print("%s done=%d changed=%d skip=%d fail=%d total=%d"%(which,done,changed,skip,fail,len(files)))
|