Topic: Estrazione csv da pdf  (Letto 134 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline marioma86

  • python unicellularis
  • *
  • Post: 16
  • Punti reputazione: 0
    • Mostra profilo
Estrazione csv da pdf
« il: Marzo 04, 2021, 23:02 »
Salve ragazzi, vorrei estrarre del testo da un pdf e creare un csv; visto che il file avrà sempre lo stesso template, vorrei riuscire ad estrarre sempre e solo alcune colonne.
Utilizzando pdftotext con ho buttato giù il seguente codice che mi permetta di estrarre solo una parte del documento, ma purtroppo il risultato sul csv è scadente (come da file allegato):

import pdftotext
import re
import csv


with open('18567.pdf', 'rb') as pdf_file:
    pdf = pdftotext.PDF(pdf_file)

lines = pdf[0].replace(' ', '@').split('\n')[20:23]

table=[]

for line in lines:
    row = re.sub('@+',';', line)
    table.append(row)
    print(row)

with open('prova2pdf.csv', 'w') as csv_file:
    writer = csv.writer(csv_file)
    writer.writerows(table)


Qualcuno di voi saprebbe aiutarmi a risolvere questo problema?

Grazie in anticipo

Offline marioma86

  • python unicellularis
  • *
  • Post: 16
  • Punti reputazione: 0
    • Mostra profilo
Re:Estrazione csv da pdf
« Risposta #1 il: Marzo 04, 2021, 23:12 »
Purtroppo non riesco ad allegare i file di esempio che ho utilizzato...

Offline nuzzopippo

  • python neanderthalensis
  • ****
  • Post: 388
  • Punti reputazione: 0
    • Mostra profilo
Re:Estrazione csv da pdf
« Risposta #2 il: Marzo 09, 2021, 18:05 »
Ciao

Non conosco la libreria pdftotext ma in ambiente linux (che uso) vi è proprio il comando "pdftotext" ... che evito di usare ed utilizzo script e vari tools per manipolare i pdf, il pdftotext linux è, diciamo, "spartano", se la lib è qualcosa di analogo strada non è che se ne faccia.

Comunque, segnalo che i pdf possono essere affrontati con diversi tools in python, segnalo pdfminer ed in ogni caso, non riesci a trovare in internet un pdf più o meno analogo a ciò che affronti da utilizzare per poterci ragionare su?
Se lo trovi mettici un link e descrivi (bene) il risultato che vuoi ottenere (un "csv" dice ben poco), magari ci si prova e ragiona su.

Ciao