Рубрики
Без рубрики

Автоматизировать запись данных из PDF в Excel с Python

Я покажу вам сегодня, как вы можете автоматизировать процесс импорта данных PDF в Excel. Это может SA … Помечено Python, производительность, Showdev.

Я покажу вам сегодня, как вы можете автоматизировать процесс импорта данных PDF в Excel. Это может сэкономить много времени для всех ежедневно.

Это наши тестовые данные:

Давайте прыгаем в код!

Сначала нам нужно импортировать зависимости

from tika import parser
import pprint
from collections import defaultdict
import re
import pandas as pd

После этого нам нужно определить PrettyPrinter и получить содержимое файла PDF и преобразовать его в список:

pp = pprint.PrettyPrinter(indent=3)
parsedPDF = parser.from_file("final-test.pdf")

content = parsedPDF['content']
contentlist = content.split('\n')

Удалить пустые строки в списке, полученном в результате разделения

contentlist = list(filter(lambda a: a != '', contentlist))

Создайте итератор и другие флаги, которые мы будем использовать для алгоритма, итератора содержимого PDF в строку:

iterateContent = iter(contentlist)

Словарь заполнитель данных соскобы

data = defaultdict(dict)

Наш счетчик, чтобы подсчитать, сколько блоков мы сможем получить

 cntr = 0

Индикатор, какую строку мы в определенном блоке данных

 line = 1

Алгоритм будет использовать флаги CNTR и строку, чтобы определить, есть ли мы в новом блоке или существующий блок

while True:
    try:
        string = next(iterateContent)
    except StopIteration:
        break

    if re.match('^[A-Z\s]+$', string):
        cntr += 1           

        data[cntr]['Name'] = string
        line = 2
        print('matched')

    elif line == 2:
        data[cntr]['Address'] = string
        line += 1

    elif line == 3:
        data[cntr]['Website'] = string
        line += 1
print("Total data:", len(data.keys()))

Настройка данных в DataFrame

df = pd.DataFrame(data.values())
df.index += 1
print(df)

Напишите dataframe в Excel

writer = pd.ExcelWriter("dataframe.xlsx", engine='xlsxwriter')
df.to_excel(writer, sheet_name='output', index=False)
writer.save()

Наши окончательные результаты:

Спасибо вам всем.

Оригинал: “https://dev.to/stokry/automate-data-entry-from-pdf-to-excel-with-python-1hm”