Ir ao conteúdo

Posts recomendados

Postado

Olá, sou iniciante na programação de python e preciso extrair varios dados de medição que veem da minha empresa em pdf e colocar eles em excel para que a engenharia consiga analisar facilmente.

 

Os pdfs vem nesse formato e eu quero extrair massivamente todos os pdfs de um caminho especificado de modo que ele organize os dados assim no excel. Não posso instalar java pra usar a biblioteca camelot ou tabula, to tentando usar o pdfplumer e fiz um teste com um arquivo apenas e deu parcialmente certo, mas ficou meio bagunçado.  A ideia é que ele extraia em massa e empilhe tabela a tabela no excel de acordo com a ordenação das amostras ex de 1 a 12 conforme os relatorios que ele ler.

 

 

import pdfplumber

import pandas as pd



def extract_tables_from_pdf(pdf_path):

    tables = []

    with pdfplumber.open(pdf_path) as pdf:

        for page in pdf.pages:

            # Extrai o texto da página

            text = page.extract_text()

           

            # Verifica se o cabeçalho da tabela está presente na página

            if 'No.' in text and 'measurement item' in text and 'mes.' in text \

                and 'value' in text and 'units' in text and 'design val.' in text \

                and 'upper limit' in text and 'lower Limit' in text and 'res.' in text:

                # Extrai a tabela como um DataFrame do Pandas

                table = page.extract_table()

                tables.append(table)



    return tables



# Substitua 'caminho_para_o_seu_pdf' pelo caminho do seu PDF

pdf_path = r"XXXX.pdf"exemplo.pdf

pdf_tables = extract_tables_from_pdf(pdf_path)



# Salvar as tabelas em arquivos Excel

for i, table in enumerate(pdf_tables):

    df = pd.DataFrame(table[1:], columns=table[0])  # Ignorar a primeira linha (cabeçalho) e criar DataFrame

    excel_file = f"tabela_{i+1}.xlsx"  # Nome do arquivo Excel

    df.to_excel(excel_file, index=False)  # Salvar DataFrame como Excel

    print(f"Tabela {i+1} salva como {excel_file}")

 

image.png.222bcf358d517523733553a3e004ff7e.png

 

formato esperado no excel image.thumb.png.8784a91551e61b54571e165871a6ec60.png

 

 

 formato como saiu com o código que escrevi

 

image.thumb.png.66683c316f1ce2e16c8beb57df9b9047.png

exemplo.pdf

Postado

@Pedroou bom dia, consegue por o código dele em uma tag de code?

 

@pedroch Como seu domínio em python é pouco, provavelmente você também não domine pandas, que não é uma lib fácil de manipular quando estamos passando do formato pdf.

Recomendo você passar para txt, tratar como um arquivo .csv (ou seja, fazer as separações usando virgula ou ponto e virgula) e dps usar o to_excel to pandas.

 

 

 

 

            if 'No.' in text and 'measurement item' in text and 'mes.' in text \

                and 'value' in text and 'units' in text and 'design val.' in text \

                and 'upper limit' in text and 'lower Limit' in text and 'res.' in text:


                table = page.extract_table()

                tables.append(table)

Não faça uma coisa assim, além de feio você não consegue entender de primeira como está operando os valores.

 

faça assim:

 


keywords = ['No.', 'measurement item', 'mes.', 'value', 'units', 'design val.', 
            'upper limit', 'lower Limit', 'res.']

for page in pdf.pages:
	text = page.extract_text()
	for key in keywords:
		if key not in text:
			continue # o continue idica ao for que deve pular esse

		table = page.extract_table()
		tables.append(table)
        
# isso é só um exemplo, eu recomendo você tratar o texto em vez de passar direto para dataframe, pois tratar o dataframe é mais hard.

 

 

 

 

Postado

@Swalls obrigado pela resposta. 

 

Sim, meu conhecimento é básico mas estou tentando fazer esse projeto pois é um desafio que me deram no meu trabalho. 

 

Obrigado pelas dicas, vou tentar aqui ver se consigo avançar no código.

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!