파이썬을 활용한 이메일 PDF 파일 자동 처리

목표 설정

‎​1. 프로젝트 배경 및 필요성

저는 김범석입니다. 제가 피디에프를 메일로 주고 받을 일이 많은데 인용해서 쓰게 되는 경우 캡쳐를 해서 텍스트로 바꾸고 다시 오타를 수정하고 하는 과정을 하다보니 상당히 성가시다 싶은 생각이 들었습니다. 그래서 메일함을 지정해서 새로오는 메일이 있으면 확인에서 텍스트 변환 부분까지 아예 자동화되었으면 싶었습니다.

문제는 제가 파이썬의 ㅍ도 몰라서 문제입니다만 많은 분들의 도움과 고언을 받고 한 번 도전해보려고 합니다.

아래 부분은 제가 생각한 기획 과정을 챗지피티와 이야기하면서 정리한 내용을 적은 것인데 민망하게도 챗지피티가 무슨 이야기를 하는지 따라가기도 벅차고 아마 저 키워드(오프모임 중에서 귀한 조언이 있었습니다)를 찾아서 공부해보다 보면 좀 알아가겠지 싶었습니다.

그래서 이해할 수는 없지만 향후 기획과정이 아래와 같을 것같아서 적었습니다.

"파이썬을 활용한 자동화 프로그램을 통해 이메일 확인, 중복 파일 검사, 새 파일 저장, 그리고 PDF에서 텍스트 추출 및 Google Sheets로 자동 저장하는 일련의 과정" 기획을 해보라고 하네요.

2. 프로젝트 목표 및 개요

이 프로젝트의 주요 목표는 다음과 같습니다:

  • 특정 이메일 주소로 전달되는 PDF 파일 확인

  • 이전에 저장한 파일과 중복 여부 검사 후, 새 파일만 Google Drive에 저장

  • PDF 파일 내 텍스트 추출 후 Google Sheets에 자동 저장

이를 통해 반복 작업을 최소화하고, 데이터 정리를 자동화하여 시간과 자원을 절약할 수 있습니다.

3. 세부 구현 계획

프로젝트는 크게 다섯 단계로 나누어 진행됩니다.

1) 이메일에서 PDF 파일 확인 및 다운로드

  • 기술적 접근: Python의 imaplibemail 라이브러리를 활용해 Gmail 등 특정 이메일 계정에 접근합니다.

  • 구현 방식: 메일함을 주기적으로 확인하여 새로운 메일이 도착했는지 검사하고, 첨부된 PDF 파일을 찾아 다운로드합니다. 메일을 확인하는 주기는 매일 한 번 혹은 특정 시간마다 자동화합니다.

2) 중복 파일 검사

  • 기술적 접근: 파일의 고유한 해시(hash)값을 생성해 기존 저장된 파일과 비교합니다.

  • 구현 방식: 다운로드한 파일의 해시값을 생성하고, Google Drive에 저장된 해시 목록과 대조하여 중복 여부를 검사합니다. 새로운 파일일 경우에만 Google Drive에 업로드하도록 설정합니다.

3) Google Drive에 저장

  • 기술적 접근: pydrive 혹은 Google Drive API를 활용해 파일을 Google Drive에 업로드합니다.

  • 구현 방식: API 인증 절차를 통해 Google Drive 계정에 접근 권한을 획득하고, 중복 검사를 통과한 PDF 파일만 특정 폴더에 자동 업로드합니다. 이를 통해 모든 파일이 안전하게 클라우드에 저장됩니다.

4) PDF에서 텍스트 추출

  • 기술적 접근: PyMuPDF 또는 pdfplumber 라이브러리를 활용하여 PDF 파일의 텍스트를 추출합니다.

  • 구현 방식: PDF 파일을 열어 텍스트만 추출하며, 필요한 경우 특정 페이지나 섹션만 선택하여 추출할 수 있습니다. 추출된 텍스트는 이후 Google Sheets에 저장될 포맷으로 전처리합니다.

5) Google Sheets에 저장

  • 기술적 접근: Google Sheets API를 통해 추출된 텍스트를 스프레드시트에 저장합니다.

  • 구현 방식: 사전에 설정된 Google Sheets의 특정 시트나 셀에 텍스트를 자동 입력합니다. 이는 업무 흐름에 맞게 각 파일의 내용을 일목요연하게 정리하는 데 유용합니다.

4. 단계별 테스트도 가능하다면 진행해볼 생각입니다.

  1. 단계별 기능 테스트: 각 단계별로 기능이 정상적으로 작동하는지 개별 테스트를 진행합니다.

  2. 모듈화 및 함수화: 코드를 모듈화하고 함수로 만들어 코드의 재사용성을 높이며, 이를 통해 유지보수도 용이하게 합니다.

4
11개의 답글

👉 이 게시글도 읽어보세요