Файлы PDF (Portable Document Format) широко используются для обмена и хранения документов. Однако извлечение данных из PDF-файлов и преобразование их в более универсальный формат, например CSV (значения, разделенные запятыми), может быть полезным для анализа, манипулирования и интеграции данных. В этой статье мы рассмотрим различные методы Python для преобразования нескольких файлов PDF в каталоге в CSV, приведя примеры кода для каждого подхода.
Метод 1: Tabula-py
Tabula-py — это библиотека Python, позволяющая извлекать таблицы из PDF-файлов. Он использует Apache PDFBox, мощную библиотеку PDF для анализа и извлечения табличных данных.
Пример кода:
import tabula
# Provide the path to the PDF file
file_path = 'path/to/pdf/file.pdf'
# Convert PDF to CSV using tabula-py
output_csv = 'output.csv'
tabula.convert_into(file_path, output_csv, output_format="csv", pages="all")
Метод 2: PyPDF2 и csv
PyPDF2 — это библиотека Python для работы с файлами PDF, а csv — встроенный модуль для чтения и записи файлов CSV.
Пример кода:
import PyPDF2
import csv
import os
# Provide the path to the directory containing PDF files
directory_path = 'path/to/pdf/directory'
# Iterate over each PDF file in the directory
for filename in os.listdir(directory_path):
if filename.endswith('.pdf'):
file_path = os.path.join(directory_path, filename)
# Open the PDF file
with open(file_path, 'rb') as file:
reader = PyPDF2.PdfReader(file)
pages = reader.numPages
# Iterate over each page in the PDF
for page in range(pages):
# Extract the text from the page
text = reader.getPage(page).extractText()
# Write the extracted text to a CSV file
output_csv = os.path.splitext(file_path)[0] + '.csv'
with open(output_csv, 'a', newline='') as csv_file:
writer = csv.writer(csv_file)
writer.writerow([text])
Метод 3: API PDFTables
PDFTables — это онлайн-сервис, предоставляющий API для преобразования PDF-файлов в различные форматы, включая CSV. Он предлагает как бесплатные, так и платные планы.
Пример кода:
import requests
# Provide the path to the PDF file
file_path = 'path/to/pdf/file.pdf'
# Specify your PDFTables API key and endpoint
api_key = 'your_api_key'
endpoint = 'https://pdftables.com/api?key={}&format=csv'.format(api_key)
# Send a POST request to the API endpoint
response = requests.post(endpoint, files={'f': open(file_path, 'rb')})
# Save the converted CSV file
output_csv = 'output.csv'
with open(output_csv, 'wb') as csv_file:
csv_file.write(response.content)
Преобразование PDF-файлов в формат CSV может значительно упростить задачи обработки и анализа данных. В этой статье мы рассмотрели три различных метода преобразования PDF-файлов в CSV с помощью Python. Tabula-py предоставляет удобный способ извлечения таблиц непосредственно из PDF-файлов, а библиотеки PyPDF2 и csv позволяют более индивидуально настраивать извлечение данных. Кроме того, PDFTables API предлагает онлайн-сервис для преобразования PDF. Выберите метод, который лучше всего соответствует вашим требованиям, и начните раскрывать потенциал своих PDF-данных.