logo

Bordpython

En introduktion

Generelt er det ikke nødvendigt, at de data, vi bruger, er tilgængelige i CSV- eller JSON-format. Dataene kan gemmes i form af en tabel i en PDF-fil. Som en meget ligetil sag kan vi kopiere og indsætte tabellen i et regneark eller en teksteditor. Men det kan også være, at vi kan mere end én tabel i den samme PDF, der har lignende strukturer. I sådanne tilfælde skal vi kopiere og indsætte hver af disse tabeller separat, hvilket gør arbejdet kedeligt.

Men for at skære dette kedelige arbejde, tilbyder Python et open source-bibliotek, også kendt som bord-py , der giver brugerne mulighed for at udtrække mere end én tabel tydeligt. I den følgende tutorial lærer vi om tabula og deres funktioner.

Hvad er Tabula?

Tabular er en grundlæggende indpakning af tabula-java, der giver brugerne mulighed for at udtrække tabellen og konvertere PDF-filen direkte til Dataframes eller JSON vha. Python programmeringssprog . Brugeren kan også udtrække tabeller fra PDF og konvertere dem til TSV-, CSV- eller JSON-formatfiler.

Tabula er et værktøj baseret på Graphical User Interface (GUI) Application; imidlertid, tabel-java er et værktøj baseret på Command-Line User Interface (CUI). tabula-java leverer bindingerne af Ruby, R og NodeJS, men ikke for Python. Således introducerede udviklerne begrebet bord-py der giver Python-binding.

Lad os nu forstå, hvem der bruger Tabula, og hvordan vi kan installere det.

Hvem bruger Tabula?

Tabula er et kraftfuldt værktøj, der bliver brugt af nyhedsorganisationer af alle størrelser for at styrke efterforskningsrapportering. Disse Nyhedsorganisationer er The Times of London, ProPublica, Foreign Policy, The New York Times, La Nacion (Argentina) og St. Paul (MN) Pioneer Press.

Der er græsrodsorganisationer såsom SchoolCuts.org, der også er afhængige af Tabula for at konvertere klodsede dokumenter til menneskevenlige offentlige ressourcer.

Bortset fra ovenstående er der forskere fra andre baggrunde, der bruger Tabula til at omdanne deres PDF-rapporter til Excel-regneark, CSV'er og JSON-formatfiler og bruge det til analyse- og databaseapplikationer.

Implementering af Tabula i Python

Når vi har diskuteret lidt Tabula, lad os forstå dens implementering i Python.

Installation af biblioteket

ryd cache npm

Siden bord-py er et open source-bibliotek af Python, vil vi bruge pip installationsprogram for at installere biblioteket.

 $ pip install tabula-py 

Import af biblioteket

Når installationen er fuldført, kan vi bekræfte den ved blot at importere biblioteket som vist nedenfor:

 import tabula 

I tilfælde af at programmet returnerer en importfejl , anbefales det at geninstallere pakken.

Det bord-py biblioteket giver forskellige funktioner såsom at læse en PDF-fil, læse en tabel på en bestemt side i en PDF-fil, læse flere tabeller på den samme side af en PDF-fil eller konvertere PDF-filer direkte til en CSV-fil.

streng til int konvertering i java

Lad os begynde med at læse en PDF-fil

Læsning af en PDF-fil

Det bord-py biblioteket giver sine brugere mulighed for at læse en PDF-fil ved hjælp af funktionen kendt som læs_pdf() fungere.

Syntaks:

 obj = tabula.read_pdf(filename, args[]) 

Parametre:

filnavn: Det filnavn parameter er navnet på pdf-filen; vi vil gerne læse data fra.

Lad os konvertere følgende pdf-datatabel til pandas dataramme.

Filnavn: marksheet_table.py

Side 1

Navn engelsk Fysik Kemi Biologi Total
EN 86 54 65 83 288
B 56 Fire. Fem 80 55 236
C 3. 4 66 73 90 263
D 77 75 46 3. 4 232
OG 74 82 55 77 288
F 69 76 82 46 273
G 53 33 29 Fire. Fem 160
H 70 41 67 23 201
jeg 80 43 88 28 239
J 90 37 Fire. Fem 71 243
K 98 55 88 81 322
L 90 54 67 37 248
M 87 76 88 54 305
N 86 69 82 66 303
O 67 74 54 65 260
P 75 96 53 67 291
Q Fire. Fem 87 80 Fire. Fem 257
R 44 66 49 78 237
S 78 39 78 80 275
T 56 54 76 86 273
I 43 90 64 77 274
I 95 88 66 55 304
I 64 67 86 80 297
x 82 56 Fire. Fem 65 248
OG 79 65 70 54 268
MED 83 54 40 75 252

Her er et eksempel givet nedenfor, der viser, hvordan man udtrækker data fra pdf'en.

Eksempel:

 # importing the library import tabula # address of the file myfile = 'marksheet_table.pdf' # using the read_pdf() function mytable = tabula.read_pdf(myfile, pages = 1) # printing the table print(mytable[0]) 

Produktion:

 Name English Physics Chemistry Biology Total 0 A 86 54 65 83 288 1 B 56 45 80 55 236 2 C 34 66 73 90 263 3 D 77 75 46 34 232 4 E 74 82 55 77 288 5 F 69 76 82 46 273 6 G 53 33 29 45 160 7 H 70 41 67 23 201 8 I 80 43 88 28 239 9 J 90 37 45 71 243 10 K 98 55 88 81 322 11 L 90 54 67 37 248 12 M 87 76 88 54 305 13 N 86 69 82 66 303 14 O 67 74 54 65 260 15 P 75 96 53 67 291 16 Q 45 87 80 45 257 17 R 44 66 49 78 237 18 S 78 39 78 80 275 19 T 56 54 77 86 273 20 U 43 90 64 77 274 21 V 95 88 66 55 304 22 W 64 67 86 80 297 23 X 82 56 45 65 248 24 Y 79 65 70 54 268 25 Z 83 54 40 75 252 

Forklaring:

rekha indisk

I ovenstående eksempel har vi importeret det nødvendige bibliotek og defineret en variabel, der gemmer adressen på pdf-datafilen. Vi har så brugt læs_pdf() funktion til at læse dataene fra pdf'en og udskrive dem til brugerne. Som et resultat er datatabellen blevet læst med succes.

Bemærk: Vi har brugt sider parameter i read_pdf()-funktionen for at læse dataene fra de(n) specificerede side(r).

Lad os overveje et andet eksempel for at udskrive tabellerne fra en bestemt side, f.eks. side nummer 2.

Eksempel:

sammenligne med strenge i java
 # importing the library import tabula # address of the file myfile = 'marksheet_table.pdf' # using the read_pdf() function mytable = tabula.read_pdf(myfile, pages = 2) # printing the table print(mytable[0]) 

Produktion:

 Name Final Scores 0 A 288 1 B 236 2 C 263 3 D 232 4 E 288 5 F 273 6 G 160 7 H 201 8 I 239 9 J 243 3 D 232 4 E 288 5 F 273 6 G 160 7 H 201 8 I 239 9 J 243 10 K 322 11 L 248 12 M 305 13 N 303 14 O 260 15 P 291 16 Q 257 17 R 237 18 S 275 19 T 273 20 U 274 21 V 304 22 W 297 23 X 248 24 Y 268 25 Z 252 

Forklaring:

I ovenstående eksempel har vi fulgt samme procedure, som vi gjorde tidligere. Vi har dog tildelt sider parameter til 2 og udskrev den første tabel på den angivne side. Som et resultat er tabellen med indeks nul på side 2 blevet udskrevet med succes.

Lad os nu forstå, hvad der sker, når der er mere end én tabel på samme side i en PDF-datafil.

Håndtering af flere tabeller på samme side i en PDF-fil

Vi kan håndtere mere end én tabel på samme ved hjælp af en ekstra parameter kendt som multiple_tables. Det multiple_tables parameter tager en boolsk værdi, for hvilken læs_pdf() funktion læser flere tabeller som uafhængige tabeller, hvis sande eller læser flere tabeller som en enkelt tabel, hvis falsk.

Lad os overveje følgende eksempel, der viser, hvordan man læser flere tabeller som uafhængige tabeller.

Eksempel:

 # importing the library import tabula # address of the file myfile = 'marksheet_table.pdf' # using the read_pdf() function mytable = tabula.read_pdf(myfile, pages = 2, multiple_tables = True) # printing the table print(mytable[0]) print(mytable[1]) 

Produktion:

 Name Final Scores 0 A 288 1 B 236 2 C 263 3 D 232 4 E 288 5 F 273 6 G 160 7 H 201 8 I 239 9 J 243 10 K 322 11 L 248 12 M 305 13 N 303 14 O 260 15 P 291 16 Q 257 17 R 237 18 S 275 19 T 273 20 U 274 21 V 304 22 W 297 23 X 248 24 Y 268 25 Z 252 Name Position 0 K I 1 M II 2 V III 3 N IV 4 W V 

Forklaring:

I det følgende eksempel har vi igen importeret det nødvendige bibliotek og defineret den variabel, der gemmer adressen på PDF-filen. Vi har så brugt læs_pdf() funktion og omfattede multiple_tables parameter indstille den til Rigtigt . Vi har derefter udskrevet de flere tabeller på side 2 i PDF-filen separat.

Lad os nu overveje et eksempel for at forstå, hvordan man læser flere tabeller som en enkelt tabel.

Eksempel:

 # importing the library import tabula # address of the file myfile = 'marksheet_table.pdf' # using the read_pdf() function mytable = tabula.read_pdf(myfile, pages = 2, multiple_tables = False) # printing the table print(mytable[0]) 

Produktion:

hvordan opfandt skolen
 Name Final Scores 0 A 288 1 B 236 2 C 263 3 D 232 4 E 288 5 F 273 6 G 160 7 H 201 8 I 239 9 J 243 10 K 322 11 L 248 12 M 305 13 N 303 14 O 260 15 P 291 9 J 243 10 K 322 11 L 248 12 M 305 13 N 303 14 O 260 15 P 291 16 Q 257 17 R 237 18 S 275 19 T 273 20 U 274 21 V 304 22 W 297 23 X 248 24 Y 268 25 Z 252 26 Name Position 27 K I 28 M II 29 V III 30 N IV 31 W V 

Forklaring:

I det følgende eksempel har vi nu indstillet multiple_tables parameter til Falsk . Som følge heraf behandles tabellerne på side 2 som en enkelt tabel.

Konvertering af PDF-fil direkte til en CSV-fil

Vi kan konvertere en PDF-fil, der indeholder tabeldata direkte til en CSV-fil ved hjælp af convert_into() metode i tabula bibliotek.

Syntaks:

 tabula.convert_into('filename.pdf', 'newfilename.csv', args[]) 

Lad os overveje følgende eksempel, der illustrerer konverteringen af ​​PDF-filen til CSV-fil.

Eksempel:

 # importing the library import tabula # address of the file myfile = 'marksheettable.pdf' # using the read_pdf() function tabula.convert_into(myfile, 'marksheet.csv') print('The PDF file has been converted successfully.') 

Produktion:

 'pages' argument isn't specified.Will extract only from page 1 by default. The PDF file has been converted successfully. 

Forklaring:

I ovenstående eksempel har vi igen importeret det nødvendige bibliotek og defineret variablen, der indeholder adressen på PDF-filen. Vi har så brugt convert_into() metode til at konvertere PDF-filen til CSV-filen og udskrive en succesmeddelelse.

Desuden kan vi også observere, at programmet returnerede en erklæring, der siger, at 'sider' argument er ikke specificeret. Således vil tabellen på side 1 blive udtrukket som standard.