본문 바로가기
파이썬 공부

파이썬으로 PDF 데이터를 손쉽게 다루는 방법: 표 추출부터 CSV 변환까지

by 파이썬코딩대학 2024. 12. 20.

파이썬으로 PDF에서 표 추출 및 변환하는 법

파이썬은 별걸 다 할 수 있는 언어지만, 정작 우리가 왜 쓸만한지 느끼는 순간은 딱 이런 데서 온다. PDF를 만지작거려야 할 일이 생길 때 말이다. 대부분 PDF는 "파일 형태의 감옥"이라 불릴 만큼, 뭘 뽑아내기가 쉽지 않다. 그나마 사람이 읽는 건 괜찮아도, 컴퓨터가 읽으라고 하면 땀이 삐질삐질 난다.

하지만 파이썬을 쓸 줄 안다면 얘기가 조금 달라진다. 여러 라이브러리들이 지원해주는 덕에, "무슨 PDF에서 뭘 뽑아내라!"는 상사의 말도 겁먹을 필요가 없다. 물론 이 글의 핵심은 뭘 뽑아내고 어쩌고 하는 정보는 아니고, 어차피 파이썬으로 가능하다는 자신감을 불어넣어 주려는 거다.


PDF에서 데이터를 뽑는 이유는 단순하다. 회사에서 자료 정리하라고 준 PDF를 보고 사람이 직접 표를 엑셀에 옮기다 보면, 내가 뭘 위해 살아가고 있는지 깊은 철학적 질문에 빠지게 된다. 결국 이런 반복적이고 무의미한 작업을 벗어나고 싶어서 파이썬을 배우는 거니까, 이 주제는 실용적이면서도 꽤 괜찮은 출발점이 될 수 있다.


코드 예시: PDF에서 표 추출하기

아래는 tabula-py라는 라이브러리를 사용해서 PDF에서 표를 추출하는 간단한 예시다.
먼저, 라이브러리를 설치해야 한다.

pip install tabula-py

그 다음, PDF에서 데이터를 추출해보자.

from tabula import read_pdf
import pandas as pd

# PDF에서 데이터를 읽어오기
file_path = "example.pdf"  # PDF 파일 경로
tables = read_pdf(file_path, pages="all", multiple_tables=True, pandas_options={'header': None})

# 추출된 데이터 확인
for idx, table in enumerate(tables):
    print(f"Table {idx + 1}:
", table)

# 첫 번째 표를 CSV로 저장
tables[0].to_csv("output.csv", index=False)

이 코드는 PDF에서 모든 페이지를 읽어서 테이블 데이터를 추출하고, 이를 확인한 뒤 CSV 파일로 저장한다.


일단 PDF에서 뽑아내는 게 어렵긴 하지만, 해낸 다음에는 세상이 달라 보인다. 표를 추출하고, 데이터로 변환한 뒤에 엑셀이나 CSV 파일로 저장하면, 사람처럼 똑같은 데이터를 다시 입력할 일이 없다. 이게 바로 "노동에서 해방되는 순간"이다.

근데 조심해야 한다. 사람들은 한 번 이런 기술력을 보여주면 더 많은 걸 요구하게 된다. "PDF 말고 이미지도 가능해요?" 같은 질문이 들어올 때쯤이면, 갑자기 내가 개발팀 전용 만능해결사가 된 기분이 든다. 그러니까 잘하되 너무 잘하지는 말자.


다음 글에서는 어떻게 라이브러리를 사용해서 PDF에서 데이터를 추출하고 정리하는지 방법을 알려줄 거다. 근데 한 가지 기억하자. 뭘 배우든 간에, 결국 파이썬은 만능이라는 사실은 변함이 없다.