import os, sys import shutil import pandas as pd sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) from lib.common import get_logger logger = get_logger("TO_CSV") DATA_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "data")) FINISH_DIR = os.path.join(DATA_DIR, "finish") os.makedirs(FINISH_DIR, exist_ok=True) def convert_excel_to_csv(filepath): try: logger.info(f"변환 시작: {os.path.basename(filepath)}") df = pd.read_excel(filepath, header=1) # 2행이 헤더 df.columns = [col.strip() for col in df.columns] csv_path = filepath + '.csv' df.to_csv(csv_path, index=False, encoding='utf-8-sig') logger.info(f"변환 완료: {os.path.basename(csv_path)}") # 변환 완료된 원본 엑셀 파일 이동 dest_path = os.path.join(FINISH_DIR, os.path.basename(filepath)) shutil.move(filepath, dest_path) logger.info(f"원본 엑셀 파일 이동 완료: {os.path.basename(dest_path)}") except Exception as e: logger.error(f"변환 실패: {os.path.basename(filepath)} - {e}") def main(): files = [os.path.join(DATA_DIR, f) for f in os.listdir(DATA_DIR) if (f.endswith(('.xls', '.xlsx')) and f.startswith("영수증별 상세매출"))] logger.info(f"총 {len(files)}개 엑셀 파일 변환 시작") for filepath in files: convert_excel_to_csv(filepath) logger.info("모든 파일 변환 완료") if __name__ == "__main__": main()