1번문항채점가능

This commit is contained in:
devdra9
2025-01-08 17:43:24 +09:00
parent ec3a3ba833
commit a4b6e22e4f
80 changed files with 1219 additions and 56 deletions

48
test.py
View File

@@ -22,15 +22,18 @@
import win32com.client
import os
import logging
import shutil
from pathlib import Path
import win32com.client.gencache
def setup_logging():
"""로깅 설정"""
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler('hwp_conversion.log'),
level = logging.INFO,
format = '%(asctime)s - %(levelname)s - %(message)s',
handlers = [
logging.FileHandler('hwp_conversion.log', encoding='utf-8'),
logging.StreamHandler()
]
)
@@ -45,32 +48,36 @@ def convert_hwp_to_xml(input_folder, output_folder):
"""
try:
# 한글 애플리케이션 객체 생성
hwp = win32com.client.Dispatch("HWPFrame.HwpObject")
# hwp = win32com.client.Dispatch("HWPFrame.HwpObject")
hwp = win32com.client.gencache.EnsureDispatch("HWPFrame.HwpObject")
# 자동화 보안 설정
hwp.XHwpWindows.Item(0).Visible = False
hwp.RegisterModule("FilePathCheckDLL", "FilePathCheckerModule")
# hwp.XHwpWindows.Item(0).Visible = False
hwp.XHwpWindows.Item(0).Visible = True
# 출력 폴더가 없으면 생성
os.makedirs(output_folder, exist_ok=True)
# HWP 파일 검색 및 변환
input_path = Path(input_folder)
for hwp_file in input_path.glob("*.hwp"):
try:
# 파일 열기
hwp.Open(str(hwp_file))
hwp.Open(str(hwp_file), "HWP")
# XML 파일 경로 설정
xml_filename = hwp_file.stem + ".xml"
xml_filename = hwp_file.stem + ".hml"
xml_path = os.path.join(output_folder, xml_filename)
# print(f"xml_path:{xml_path} type:{type(xml_path)}")
# XML로 저장
hwp.SaveAs(xml_path, "HWPML2X")
hwp.SaveAs(xml_path, "HWPML2X", "")
logging.info(f"변환 성공: {hwp_file.name} -> {xml_filename}")
except Exception as e:
logging.error(f"파일 변환 실패: {hwp_file.name} - {str(e)}")
logging.error(f"파일 변환 실패: {hwp_file.name} -> {e}")
finally:
# 현재 문서 닫기
@@ -86,13 +93,26 @@ def convert_hwp_to_xml(input_folder, output_folder):
except:
pass
def delete_gen_py():
# gen_py 디렉토리 경로
gen_py_dir = os.path.join(os.environ['LOCALAPPDATA'], 'Temp', 'gen_py')
# gen_py 디렉토리 삭제
if os.path.exists(gen_py_dir):
shutil.rmtree(gen_py_dir)
print(f'{gen_py_dir} 디렉토리를 삭제했습니다.')
if __name__ == "__main__":
# delete_gen_py()
# 로깅 설정
setup_logging()
# 변환할 폴더 경로 설정
input_folder = r"C:\Users\gzero-ser7-win11\Documents\hwpTest\Input" # HWP 파일이 있는 폴더
output_folder = r"C:\Users\gzero-ser7-win11\Documents\hwpTest\Output" # XML 파일을 저장할 폴더
input_folder = r"C:\Users\dra\project\HWP-Scoring\input" # HWP 파일이 있는 폴더
output_folder = r"C:\Users\dra\project\HWP-Scoring\output" # XML 파일을 저장할 폴더
# output_folder = r"\hwp-output" # HWP 파일이 있는 폴더
# 변환 실행
convert_hwp_to_xml(input_folder, output_folder)