Kaip konvertuoti lenteles iš PDF į „Excel“ arba CSV naudojant „Tabula“

Pereiti ir konvertuoti pdf į csv ir excel

Žvelgdamas į istorinius duomenis, kuriuos pasiūlė meteorologinė observatorija mano mieste, tai matau jie siūlo juos tik grafiškai ir atsisiųsti kaip PDF. Nesuprantu, kodėl jie neleidžia atsisiųsti į csv, o tai būtų daug naudingiau visiems.

Taigi aš jo ieškojau sprendimas perduoti šias lenteles iš pdf į csv arba jei kas nors nori formatuoti „Excel“ ar „Libre Office“. Man patinka csv, nes su csv jūs darote viską, ką galite tvarkyti naudodamiesi python ir jo bibliotekomis, arba galite lengvai jį importuoti į bet kurią skaičiuoklę.

Kadangi idėja yra pasiekti automatizuotą procesą, noriu scenarijaus, kuris veiktų su „Python“, ir čia atsiranda „Tabula“.

Konvertuokite pdf į csv naudodami „Tabula“

Veiksmai ir valdymas yra labai paprasti. Pirmasis bus įdiegti „Tabula“ biblioteką į mūsų kūrimo aplinką. „Tabula“ leidžia mums išgauti duomenis iš lentelių PDF formatu į „Pandas“ duomenų rėmelius - „Python“ biblioteką, optimizuotą darbui su csv ir masyvais.

Tai taip pat leidžia išskleisti ir konvertuoti tarp PDF, JSON, CSV ir TSV. Perlas. Čia galite rasti daug daugiau informacijos github saugykla

Prenumeruokite mūsų adresų sąrašą

Aš pasinaudoju visais ankstesnių dienų darbais ir įdiegiu juos „Anaconda“. Nuorodoje galite pamatyti, kaip įdiekite „Anaconda“.

Įdiegiame „Tabula“

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

Vykdant tai davė klaidą

sprendimas, kaip nurodyta jų dokumentacijoje, buvo pašalinti seną „Tabula“ versiją ir įdiegti naują.

pip uninstall tabula
pip install tabula-py

Sukuriame vykdomąjį .py

skaityti lenteles nuo pdf iki csv

Sukuriu vykdomąjį .py, kurį vadinu pdftocsv.py, įdedu į aplanką „Downloads / eltiempo“ ir tai yra failas su tokiu kodu

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')

Perskaitytas pdf yra vadinamas inforatge.pdf, ir aš jam sakau, kad išvestis vadinama out.csv ir ji liks aplanke, kuriame mes dirbame.

Einame į katalogą, kuriame turime ir vykdomąjį failą, ir pdf, kurį norime konvertuoti. Tai svarbu, nes jei jis mums pasakys, kad negali rasti failo.

cd Descargas/eltiempo

Šiame kataloge turime PDF failą, sukurtą .py failą ir jis grąžins norimą csv.

Mes vykdome kodą

python pdftocsv.py

Atkreipkite dėmesį, kad naudojau „python“, tai yra, liepiu paleisti jį su „python 2“, o ne su „python3“, kuris nepavyksta. Ir viskas, jei ji negrąžins jokios klaidos, mes ją jau turime.

paleiskite „Tabula“ mūsų „Anaconda“ kūrimo aplinkoje

Į failą įtraukėme dar 3 eilutes, skirtas valdymui vykdyti. pabaigoje mes palikome savo pdftocsv.py failą kaip

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

Daugiau parinkčių iš „Tabula“

Daugiau pavyzdžių, kuriuos galime padaryti. Yra daugybė variantų, geriausia pereiti per mano paliktą oficialią „Github“ saugyklą

# 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")

Be abejo, vienas naudingiausių dalykų, norint konvertuoti visus PDF, JSON ir kt. Failus į katalogą.

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

Tai galime automatizuoti užduotis, kurios priešingu atveju būtų ilgos ir varginančios. Galų gale tai yra viena iš šios bibliotekos naudojimo priežasčių.

Konvertuoti pdf į „Excel“

Jei norime paprasčiausiai konvertuoti failą, išgauti lentelės duomenis iš PDF į „Excel“, „Librecalc“ ar panašius dalykus, nebūtina jų taip apsunkinti. Tam yra įrankių, kai kuriuos galima įdiegti, o kitus atlikti darbą internete.

Išbandžiau šiuos du internetinius įrankius ir jie veikia labai gerai.

Turėkite omenyje, kad tai nėra automatizuotas darbas, todėl šių priemonių tyrimas nebuvo išsamus. Aš juos komentuoju tik tiems, kuriems gali būti įdomu.

Klasikinis metodas

Ir mes visada turime klasikinį metodą, patį aptakiausią ir brangiausią, tačiau galų gale tai yra galimybė, jei yra mažai darbo.

Nukopijuokite lentelės langelius iš pdf ir įklijuokite juos į mūsų skaičiuoklę.

Komentuoti