공공기관2 작업 중. _temp 몽타주(재생성가능)는 제외. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""plan_{기관}.json 의 auto='어문'(콘텐츠이미지 없음) 행 → N에서 '이미지' 제거(강등).
|
|
candidate 행은 보존(사용자/추가 시각판정 영역). 하늘색 표시는 하지 않음(사용자 지시).
|
|
사용: python _공공기관_napply.py <기관명>
|
|
"""
|
|
import sys, os, json
|
|
import openpyxl
|
|
|
|
OUTDIR = r'D:\01.프로젝트\DB수집\공공기관'
|
|
TEMP = r'D:\01.프로젝트\DB수집\_temp'
|
|
|
|
|
|
def demote(N):
|
|
parts = [p for p in (N or '').split(',') if p and p != '이미지']
|
|
return ','.join(parts) if parts else '없음'
|
|
|
|
|
|
def run(name):
|
|
plan = json.load(open(os.path.join(TEMP, f'nshot_{name}', f'plan_{name}.json'), encoding='utf-8'))
|
|
xlsx = os.path.join(OUTDIR, f'{name}.xlsx')
|
|
wb = openpyxl.load_workbook(xlsx)
|
|
ws = wb.active
|
|
chg = 0
|
|
for it in plan:
|
|
if it['auto'] == '어문':
|
|
r = it['row']
|
|
cur = ws.cell(r, 14).value or ''
|
|
if '이미지' in cur:
|
|
ws.cell(r, 14).value = demote(cur)
|
|
chg += 1
|
|
wb.save(xlsx)
|
|
cand = sum(1 for it in plan if it['auto'] == 'candidate')
|
|
print(f'[{name}] 이미지강등 {chg}행 | 잔여이미지후보 {cand}행(시각판정 영역)')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
run(sys.argv[1])
|