Forum >> Programmazione Python >> Files e Directory >> Estrarre csv da pdf

Pagina: 1

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 = pdf0.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)


Copy




Qualcuno di voi saprebbe aiutarmi a risolvere questo problema?

Grazie in anticipo

--- Ultima modifica di marioma86 in data 2021-03-04 23:19:10 ---

--- Ultima modifica di ㎝ in data 2021-03-05 17:13:08 ---
Allegati
prova con
import pdftotext
import csv


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

lines = pdf[0].splitlines()[20:23]

table = []

for line in lines:
    table.append(line.split())

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


THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
Grazie mille... ho apportato le modifiche che mi hai suggerito e funziona alla perfezione.
Adesso non mi resta che provarlo anche per pdf con più di una pagina.

Un'ultima cosa, secondo te sarebbe possibile inserire un comando che permetta di scegliere il file da cui creare il csv?




Grazie mille in anticipo




prova con
import pdftotext
import csv


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

lines = pdf[0].splitlines()[20:23]

table = []

for line in lines:
    table.append(line.split())

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



Grazie mille... ho apportato le modifiche che mi hai suggerito e funziona alla perfezione.
Adesso non mi resta che provarlo anche per pdf con più di una pagina.

Un'ultima cosa, secondo te sarebbe possibile inserire un comando che permetta di scegliere il file da cui creare il csv?




Grazie mille in anticipo


Pagina: 1



Esegui il login per scrivere una risposta.