DB_JOB/작업파일/공공기관2/_finalize_status.py
hehihoho3 df16c98366 백업: DB수집 전체 스냅샷 (공공기관2 정리 전)
공공기관2 작업 중. _temp 몽타주(재생성가능)는 제외.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-18 18:15:40 +09:00

62 lines
2.5 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- coding: utf-8 -*-
"""14곳 잔존 빈행 정리 + 현황판(공공기관2_작업현황.xlsx) 행수·상태 갱신."""
import io, os, sys
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
import openpyxl
BASE = r"D:\01.프로젝트\DB수집\작업파일\공공기관2"
STATUS = os.path.join(BASE, "공공기관2_작업현황.xlsx")
INSTS = [
(1, "한국전기안전공사"), (2, "한국전력거래소"), (3, "한국조세재정연구원"),
(4, "한국조폐공사"), (5, "한국주택금융공사"), (6, "한국중부발전"),
(7, "한국지능정보사회진흥원"), (8, "한국지식재산보호원"), (9, "한국지식재산연구원"),
(10, "한국지역난방공사"), (11, "한국직업능력연구원"), (12, "한국철도공사"),
(13, "한국청소년상담복지개발원"), (14, "한국청소년정책연구원"), (15, "한국청소년활동진흥원"),
(16, "한국체육산업개발"), (17, "한국치산기술협회"),
]
BLOCKED = {3, 4}
rowcounts = {}
for num, name in INSTS:
fp = os.path.join(BASE, f"{num}.{name}", f"{name}.xlsx")
if not os.path.exists(fp):
rowcounts[num] = 0; continue
wb = openpyxl.load_workbook(fp)
ws = wb.active
# 마지막 B(순번) 채워진 행
last = 2
for r in range(3, ws.max_row + 1):
if ws.cell(r, 2).value is not None:
last = r
data_rows = last - 2
# 잔존 빈행 삭제
if ws.max_row > last:
# 병합 해제(삭제범위에 걸친 것)
for m in list(ws.merged_cells.ranges):
if m.min_row > last:
ws.unmerge_cells(str(m))
ws.delete_rows(last + 1, ws.max_row - last)
wb.save(fp)
rowcounts[num] = data_rows
print(f" {num}.{name}: {data_rows}" + (" (정리)" if True else ""))
# 현황판 갱신
swb = openpyxl.load_workbook(STATUS)
sh = swb["현황"]
for i, (num, name) in enumerate(INSTS, start=2):
rc = rowcounts.get(num, 0)
if num in BLOCKED:
sh.cell(i, 5, "미수집") # 상태
sh.cell(i, 6, "미검수") # 검수
cur = sh.cell(i, 11).value or ""
if "차단" not in cur:
sh.cell(i, 11, cur + " / ⚠작업PC 접속차단(2026-06-16)·내일 재시도")
else:
sh.cell(i, 5, "✅ 수집완료")
sh.cell(i, 6, "미검수")
sh.cell(i, 7, rc) # 행수
swb.save(STATUS)
print("\n현황판 갱신 완료:", STATUS)
print("수집완료 14곳 총행수:", sum(v for k, v in rowcounts.items() if k not in BLOCKED))