Ir ao conteúdo

Posts recomendados

Postado

Olá!
Como não encontrei nenhum tutorial específico para isso, estou testando o q o ChatGPT me passou. É um pouco genérico. Tento substituir os termos do exemplo, o caminho do arquivo... mas ao rodar, não dá certo.
Eu tenho um arquivo em PDF com várias páginas que é uma grande tabela.
O objetivo é: encontrar uma palavra (p ex. São Paulo) e todas as linhas que aparecerem essa palavra sejam selecionadas e exportadas para um arquivo .csv (com colunas separadas por vírgulas) ou em .xlsx.
Segue abaixo o exemplo usando o PDF Plumber no VS Code:

 

import pdfplumber
import pandas as pd

# Função para extrair linhas contendo uma palavra de um PDF
def extrair_linhas_com_palavra(pdf_path, palavra_chave):
    linhas_selecionadas = []
    
    # Abrindo o PDF
    with pdfplumber.open(pdf_path) as pdf:
        for pagina in pdf.pages:
            # Extraindo texto da página
            texto = pagina.extract_text()
            if texto:
                # Dividindo o texto em linhas
                linhas = texto.split('\n')
                for linha in linhas:
                    if palavra_chave in linha:
                        linhas_selecionadas.append(linha)
    
    return linhas_selecionadas

# Caminho para o arquivo PDF
caminho_pdf = 'caminho/para/o/seu/documento.pdf'
# Palavra a ser buscada
palavra = 'sua_palavra'

# Extraindo linhas que contêm a palavra
linhas_encontradas = extrair_linhas_com_palavra(caminho_pdf, palavra)

# Criando um DataFrame com as linhas encontradas
df = pd.DataFrame(linhas_encontradas, columns=['Linhas'])

# Exportando para um arquivo CSV
df.to_csv('linhas_selecionadas.csv', index=False, encoding='utf-8')

# Exportando para um arquivo Excel
df.to_excel('linhas_selecionadas.xlsx', index=False, encoding='utf-8')

 

 

Tem alguma dica? Tô muito fora?? rsrs
Obrigado. Um abraço.
 

Postado

Primeiro você precisa identificar se teu PDF tem o texto codificado lá. Existem PDFs onde não é possível pesquisar texto porque essa informação foi retirada.

Qualquer coisa tu pode tentar adaptar um script que fiz faz um tempo:

import json
import os
import PyPDF2

TARGET_FOLDER = "test"
os.makedirs(TARGET_FOLDER, exist_ok=True)


def save(filename: str, contents: dict | list):
    """Saves the file to the TARGET_FOLDER in JSON format"""
    with open(os.path.join(TARGET_FOLDER, filename), "w", encoding="utf-8") as f:
        j = json.dumps(contents, ensure_ascii=False, indent=4)
        f.write(j)


def parse_text(palavra: str, text: str) -> list[str]:
    lines = text.split("\n")
    results = []
    for line in lines:
        if palavra in line:
            results.append(line)
    return results


def read_file(filename: str) -> None:
    """Reads, processes and saves the extracted text from the file"""
    with open(filename, "rb") as f:
        pdf_file = PyPDF2.PdfReader(f)
        first_page: PyPDF2.PageObject = pdf_file.pages[0]
        text = first_page.extract_text()
        return text
    

filename = "test.pdf"
palavra = "kamuri"
text = read_file(filename)
result = parse_text(palavra, text)
save(os.path.basename(filename).replace(".pdf", ".json"), result)

 

  • Amei 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!