Hoe om tabelle van PDF na Excel of CSV met Tabula te omskep

Slaag en omskep pdf na csv en presteer

As ek kyk na die historiese gegewens wat deur 'n meteorologiese sterrewag in my stad aangebied word, sien ek dit dit word slegs grafies aangebied en as PDF afgelaai. Ek verstaan ​​nie waarom hulle dit nie toelaat om dit in csv af te laai nie, wat baie nuttiger vir almal sal wees.

Ek het dus een gesoek oplossing om hierdie tabelle van pdf na csv deur te gee of as iemand Excel of Libre Office wil formateer. Ek hou van csv omdat u met csv alles doen wat u met python en sy biblioteke kan hanteer, of u kan dit maklik in enige sigblad invoer.

Aangesien die idee is om 'n outomatiese proses te bewerkstellig, is dit 'n skrif om saam met Python te werk, en dit is hier waar Tabula binnekom.

Skakel pdf na csv met Tabula

Die stappe en werking is baie eenvoudig. Die eerste sal wees installeer die Tabula-biblioteek in ons ontwikkelingsomgewing. Met Tabula kan ons data uit PDF-tabelle in Pandas-datarame onttrek, die Python-biblioteek wat geskik is om met csv en skikkings te werk.

Dit laat ook toe haal en omskakel tussen PDF, JSON, CSV en TSV. 'N Edelsteen. U kan baie meer inligting hierin vind github-bewaarplek

Ek benut al die werk van vorige dae en installeer dit in Anaconda. In die skakel kan u sien hoe installeer Anaconda.

Ons installeer Tabula

#primero activamos nuestro entorno de desarrollo en nuestro caso sería conda activate comparador
pip install tabula-py

Toe ek dit uitvoer, het dit my 'n fout gegee

die oplossing soos aangedui in hul dokumentasie was om die ou weergawe van Tabula te verwyder en die nuwe te installeer.

pip uninstall tabula
pip install tabula-py

Ons skep die uitvoerbare .py

lees tabelle van pdf tot csv

Ek skep die uitvoerbare .py wat ek pdftocsv.py noem, ek plaas dit in my Downloads / eltiempo-lêergids en dit is 'n lêer met die volgende kode

import tabula
# Extaer los datos del pdf al DataFrame
df = tabula.read_pdf("inforatge.pdf")
# lo convierte en un csv llamdo out.csv codificado con utf-8
df.to_csv('out.csv', sep='\t', encoding='utf-8')

Die pdf wat gelees moet word, heet inforatge.pdf en ek sê dat die uitvoer out.csv genoem word en dat dit in die gids waarin ons werk, sal bly.

Ons gaan na die gids waar beide die uitvoerbare en die pdf is wat ons wil omskakel. Dit is belangrik, want as dit ons sal vertel dat dit nie die lêer kan vind nie.

cd Descargas/eltiempo

In hierdie gids het ons die PDF, die .py-lêer wat ons gemaak het, en daar sal dit die csv teruggee wat ons wil hê.

Ons voer die kode uit

python pdftocsv.py

Let op dat ek python gebruik het, dit wil sê, ek sê dit moet dit met python 2 gebruik en nie met python3 wat misluk nie. En dit is dit as dit geen fout oplewer nie, ons het dit reeds.

bestuur Tabula in ons Anaconda-ontwikkelingsomgewing

Ons het nog 3 lyne by die lêer gevoeg vir die bestuur van looptyd. aan die einde het ons ons pdftocsv.py-lêer as

import tabula
import time

start_time = time.time()

df = tabula.read_pdf("inforatge.pdf")
df.to_csv('out.csv', sep='\t', encoding='utf-8')

print("--- %s seconds ---" % (time.time() - start_time))

Meer opsies van Tabula

Meer voorbeelde van dinge wat ons kan doen. Daar is baie opsies, dit is die beste om deur die amptelike Github-bewaarplek te gaan wat ek oor het

# Leer PDF remotos y convertirlos en DataFrame
df2 = tabula.read_pdf("https://github.com/tabulapdf/tabula-java/raw/master/src/test/resources/technology/tabula/arabic.pdf")

# Convertir un PDF en CSV
tabula.convert_into("test.pdf", "output.csv", output_format="csv")

En sonder twyfel een van die nuttigste dinge om alle PDF-, JSON-, ensovoorts-lêers in 'n gids te omskep.

tabula.convert_into_by_batch("input_directory", output_format='csv')

Hiermee kan ons take outomatiseer wat andersins lang en vervelig sou wees. Uiteindelik is dit een van die redes vir die gebruik van hierdie biblioteek.

Skakel pdf om aanlyn uit te blink

As ons net 'n lêer moet omskakel, die data uit die tabel van PDF na Excel, Librecalc of soortgelyk wil onttrek, is dit nie so nodig om dit te kompliseer nie. Daar is gereedskap beskikbaar om dit te doen, sommige om te installeer en ander om die werk aanlyn te verrig.

Ek het hierdie twee aanlyn-instrumente probeer en dit werk baie goed.

Hou in gedagte dat dit nie 'n outomatiese taak is nie, en dat die studie van hierdie instrumente nie volledig was nie. Ek lewer slegs kommentaar daarop vir diegene wat belangstel.

Die klassieke metode

En ons het altyd die klassieke metode, die slordigste en duurste, maar uiteindelik is dit 'n opsie as daar min werk is.

Kopieer die tafelselle vanaf die pdf en plak dit in ons sigblad.

Skryf 'n opmerking