62 lines
2.5 KiB
Python
62 lines
2.5 KiB
Python
import os
|
|
import shutil
|
|
import glob
|
|
|
|
# ── 설정 ────────────────────────────────────────────────────────────────
|
|
exam_round = "2604"
|
|
exam_codes = ["DIC", "DPI"]
|
|
|
|
base_dir = rf"D:\project\GOM\DIC\회차별채점자료"
|
|
output_base = r"output"
|
|
|
|
types = ["A", "B", "C", "D", "E"]
|
|
|
|
# ── 복사 실행 ────────────────────────────────────────────────────────────
|
|
for exam_code in exam_codes:
|
|
for type in types:
|
|
# 원본 형 폴더 탐색: "2603회 A형" 또는 "2603회 A형(클리핑)" 매칭
|
|
type_pattern = os.path.join(
|
|
base_dir, exam_round, exam_code,
|
|
f"*{type}*"
|
|
)
|
|
matched_type_folders = [d for d in glob.glob(type_pattern) if os.path.isdir(d)]
|
|
|
|
if not matched_type_folders:
|
|
print(f"[WARN] 형 폴더 없음: {type_pattern}")
|
|
continue
|
|
|
|
type_folder = matched_type_folders[0]
|
|
|
|
# 하위 정답파일 폴더 탐색
|
|
answer_dir = os.path.join(type_folder, "정답파일")
|
|
if not os.path.isdir(answer_dir):
|
|
print(f"[WARN] 정답파일 폴더 없음: {answer_dir}")
|
|
continue
|
|
|
|
candidate_folders = [
|
|
d for d in glob.glob(os.path.join(answer_dir, "*"))
|
|
if os.path.isdir(d)
|
|
]
|
|
|
|
if not candidate_folders:
|
|
print(f"[WARN] 복사할 폴더 없음: {answer_dir}")
|
|
continue
|
|
|
|
# 대상 경로: output\2603\A\DIC
|
|
dst_base = os.path.join(output_base, exam_round, type, exam_code)
|
|
os.makedirs(dst_base, exist_ok=True)
|
|
|
|
for src_folder in candidate_folders:
|
|
folder_name = os.path.basename(src_folder)
|
|
# 폴더명 뒤에 {type} 텍스트 추가: dpi_03_123456_성명A
|
|
new_folder_name = f"{folder_name}{type}"
|
|
dst_path = os.path.join(dst_base, new_folder_name)
|
|
shutil.copytree(src_folder, dst_path, dirs_exist_ok=True)
|
|
print(f"[OK] {exam_code} {type}형 복사 완료: {src_folder} → {dst_path}")
|
|
|
|
# TEST 폴더 생성: D:\project\GOM\DIC\output\2603\A\TEST
|
|
test_folder = os.path.join(output_base, exam_round, type, "TEST")
|
|
os.makedirs(test_folder, exist_ok=True)
|
|
print(f"[OK] TEST 폴더 생성 완료 → {test_folder}")
|
|
|
|
print("\n전체 처리 완료.") |