글

라벨이 python-pptx인 게시물 표시

pptx 자동 생성에서 6주간 밟은 지뢰 — OneDrive 온라인 전용 파일, LibreOffice 빈 PDF, python-pptx 글자 넘침, 렌더 캐시

이미지
앞 글 에서 예배 PPT 자동 생성 파이프라인의 구조를 정리했습니다. 이 글은 그 파이프라인을 6주간 매주 돌리면서 실제로 걸린 문제들입니다. 하나하나는 사소한데, 각각 한 주씩 잡아먹었습니다. 재현 조건과 확인 방법 위주로 적습니다. 1. OneDrive 온라인 전용 파일은 스크립트에서 못 읽는다 악보 812개가 든 폴더가 OneDrive 안에 있습니다. 어느 날 갑자기 모든 파일이 읽기 실패했습니다. OSError: [Errno 35] Resource deadlock avoided os.path.getsize() 는 정상 크기를 돌려주고 os.listdir() 도 잘 됩니다. 열어서 읽을 때만 실패합니다. 원인은 OneDrive의 Files On-Demand (온라인 전용)입니다. 오래 안 열어본 파일은 실체가 로컬에서 지워지고 자리표시자만 남는데, macOS Finder에서 열면 그때 받아오지만 컨테이너·샌드박스 안의 프로세스는 그 다운로드를 일으킬 수 없습니다. 재시도, cp , dd , 다른 API 전부 소용없습니다. 해결은 Finder에서 폴더 우클릭 → "이 기기에 항상 유지" 하나뿐입니다. 코드 쪽에서는 미리 잡아내는 점검만 넣었습니다. def readable(path): try: with open(path, "rb") as f: f.read(4) return True except OSError: return False 4바이트만 읽어도 판별됩니다. 파이프라인 첫 단계에서 이번 주에 쓸 파일만 골라 검사하고, 하나라도 실패하면 나머지를 먼저 만든 뒤 사용자에게 알립니다. 온라인 전용·클라우드 파일은 ‘보인다’와 ‘읽힌다’가 다릅니다. 사진: Bluestonex / Unsplash 2. LibreOffice는 못 읽는 파일도 '성공'한다 1번보다 이게 더 위험합니다. 온라인 전용 파일...

매주 90장 예배 PPT를 자동으로 만드는 파이프라인 — 웹 에디터, Object Storage, 그리고 Claude 스킬

이미지
교회 미디어 봉사를 맡으면 매주 같은 일을 반복하게 됩니다. 찬양 4곡 악보를 찾아 슬라이드로 넣고, 교독문을 절 단위로 나누고, 말씀봉독 본문을 개역개정에서 옮겨 적고, 광고를 정리하고, 설교 제목을 바꿉니다. 평균 90장짜리 PPT가 매주 한 벌씩 나옵니다. 이 글은 그 작업을 웹 입력 → 오브젝트 스토리지 → Claude 스킬 → pptx 로 자동화한 구조를 정리한 것입니다. 6주간 실제 예배에 쓰면서 다듬은 결과이고, 삽질 목록은 별도 글 로 나눴습니다. 1. 전체 구조 [담당자] [Astro 웹 에디터] [OCI Object Storage] 찬양 콘티, 교독문 번호, ──▶ material.ts가 검증·직렬화 ──▶ 자료 - 20260906.txt (사람용) 본문 범위, 광고, 설교 토큰 게이트 API 자료 - 20260906.json (자동화용) │ ▼ (OneDrive 동기화) [Claude Cowork 스킬] [작업 폴더/contexts/] load_material.py ──▶ find_song.py ──▶ render_song.py ──▶ worship_design.py ──▶ 완성 pptx 원고 읽기 악보 812개 중 LibreOffice로 슬라이드 조립·검증 이번 주 것 매칭 PNG 변환 핵심은 두 가지입니다. 첫째, 매주 바뀌는 것만 입력 받습니다. 사도신경, 헌금기도, 축도처럼 고정된 슬라이드는 코드에 상수로 들어 있습니다. 둘째,...