Гледајући историјске податке које нуди метеоролошка опсерваторија у мом граду, видим то нуде их само графички и за преузимање у ПДФ-у. Не разумем зашто вам не дозвољавају да их преузмете у цсв, што би било много корисније за све.
Па сам тражио једног решење за прослеђивање ових табела из пдф-а у цсв или ако неко жели да форматира Екцел или Либре Оффице. Свиђа ми се цсв јер са цсв-ом радите све што можете да урадите са питхоном и његовим библиотекама или га лако можете увести у било коју табелу.
Како је идеја постизање аутоматизованог процеса, оно што желим је скрипта за рад са Питхоном и ту долази Табула.
Претворите пдф у цсв помоћу Табеле
Кораци и руковање је врло једноставно. Први ће бити инсталирајте библиотеку Табула у наше развојно окружење. Табула нам омогућава издвајање података из табела у ПДФ-у у Пандас оквире података, Питхон библиотеку оптимизовану за рад са цсв-ом и низовима.
То такође дозвољава издвајање и претварање између ПДФ, ЈСОН, ЦСВ и ТСВ. Драгуљ. У њему можете пронаћи много више информација гитхуб спремиште
Искористим сав посао из претходних дана и инсталирам га у Анаконду. На линку можете видети како инсталирајте Анацонду.
Инсталирамо Табулу
#primero activamos nuestro entorno de desarrollo en nuestro caso sería conda activate comparador
pip install tabula-py
Приликом извршења, дао ми је грешку
решење као што је назначено у њиховој документацији било је деинсталирање старе верзије Табуле и инсталирање нове.
pip uninstall tabula
pip install tabula-py
Креирамо извршну датотеку .пи
Направим извршну датотеку .пи коју зовем пдфтоцсв.пи Ставим је у свој фолдер Довнлоадс / елтиемпо и то је датотека са следећим кодом
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')
Пдф за читање зове се инфоратге.пдф и кажем му да се излаз позива оут.цсв и остаће у фасцикли у којој радимо.
Идемо у директоријум где имамо и извршну датотеку и пдф који желимо да претворимо. Важно је јер ће нам рећи да не може пронаћи датотеку.
cd Descargas/eltiempo
У овом директоријуму имамо ПДФ, .пи датотеку коју смо креирали и тамо ће вратити цсв који желимо.
Извршавамо код
python pdftocsv.py
Приметите да сам користио питхон, то јест, кажем му да га покреће са питхон 2, а не са питхон3 који не успе. И то је то ако не врати грешку, ми је већ имамо.
У датотеку смо додали још 3 реда за контролу извођења. на крају смо датотеку пдфтоцсв.пи оставили као
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))
Више опција из Табуле
Још примера ствари које можемо учинити. Постоји много опција, најбоље је да прођем кроз службено Гитхуб складиште које ми је остало
# 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")
И без сумње једна од најкориснијих ствари за претварање свих ПДФ, ЈСОН итд. Датотека у директоријум.
tabula.convert_into_by_batch("input_directory", output_format='csv')
Овим можемо аутоматизовати задатке који би иначе били дуготрајни и заморни. На крају, ово је један од разлога за коришћење ове библиотеке.
Претворите пдф у екцел на мрежи
Ако је оно што желимо једноставно претворити датотеку, извући податке из табеле из ПДФ-а у Екцел, Либрецалц или слично, није потребно толико компликовати. Доступни су алати за то, неки за инсталирање, а неки за посао на мрежи.
Испробао сам ова два мрежна алата и раде врло добро.
- https://www.pdftoexcel.com/es
- https://www.pdftoexcelonline.com/es/ добро ради, али вам документ шаље поштом
Имајте на уму да ово није аутоматизован посао и зато проучавање ових алата није било исцрпно. Коментирам их само за оне који могу бити заинтересовани.
Класична метода
И увек имамо класичну методу, најнеуреднију и најскупљу, али на крају је опција ако има мало посла.
Копирајте ћелије табеле из пдф-а и налепите их у нашу табелу.