Cài đặt python lạc đà

Camelot là một thư viện Python và một công cụ dòng lệnh giúp mọi người dễ dàng trích xuất các bảng dữ liệu được yêu cầu trong các tệp PDF. Kiểm tra tài liệu chính thức và lưu trữ GitHub của họ

Trong khi Tabula-py là một trình bao bọc Python đơn giản của tabula-java, có thể đọc các bảng trong PDF. Nó cho phép bạn chuyển đổi tệp PDF thành CSV, TSV, JSON hoặc thậm chí là DataFrame của gấu trúc

Ngoài việc trích xuất các bảng từ tệp PDF, bạn cũng có thể muốn tìm hiểu cách mã hóa và giải mã tệp PDF bằng Python. Hoặc có thể bạn cần hợp nhất các tệp PDF bằng Python. Một nhiệm vụ hữu ích khác là trích xuất tất cả các liên kết từ tệp PDF bằng Python. Và nếu bạn cần chuyển đổi tệp PDF của mình sang định dạng khác, bạn có thể sử dụng Python để chuyển đổi PDF sang Docx. Bạn có thể kiểm tra tất cả các hướng dẫn PDF tại đây

Trong phần hướng dẫn này, bạn sẽ tìm hiểu cách trích xuất các bảng trong PDF bằng cách sử dụng cả thư viện camelot và tabula-py trong Python

Có liên quan. Cách trích xuất hình ảnh từ PDF bằng Python

Trước tiên, bạn cần cài đặt các phụ thuộc cần thiết để thư viện hoạt động bình thường, sau đó bạn có thể cài đặt các thư viện bằng dòng lệnh

pip3 install camelot-py[cv] tabula-py

Lưu ý rằng bạn cần chắc chắn rằng bạn đã cài đặt đúng Tkinter và ghostscript [là các phần phụ thuộc cần thiết cho camelot] trên máy tính của bạn

Trích xuất các bảng PDF bằng Camelot

Bây giờ bạn đã cài đặt tất cả các yêu cầu cho hướng dẫn này, hãy mở tệp Python mới và làm theo

import camelot

# PDF file to extract tables from
file = "foo.pdf"

Tôi có một tệp PDF trong thư mục hiện tại có tên là "foo. pdf" [lấy tại đây] là một trang PDF bình thường chứa một bảng được hiển thị trong hình ảnh sau

Only is a Random table. Please giải nén nó bằng Python

# extract all the tables in the PDF file
tables = camelot.read_pdf[file]

hàm read_pdf[] trích xuất tất cả các bảng trong tệp PDF. Please in the number of table is quote export

# number of tables extracted
print["Total tables extracted:", tables.n]

kết quả này

Total tables extracted: 1 

Chắc chắn rồi, nó chỉ chứa một bảng, trong bảng này dưới dạng Khung dữ liệu Pandas

# print the first table as Pandas DataFrame
print[tables[0].df]

đầu ra

              0            1                2                     3                  4                  5                 6
0  Cycle \nName  KI \n[1/km]  Distance \n[mi]  Percent Fuel Savings
1                                                  Improved \nSpeed  Decreased \nAccel  Eliminate \nStops  Decreased \nIdle
2        2012_2         3.30              1.3                  5.9%               9.5%              29.2%             17.4%
3        2145_1         0.68             11.2                  2.4%               0.1%               9.5%              2.7%
4        4234_1         0.59             58.7                  8.5%               1.3%               8.5%              3.3%
5        2032_2         0.17             57.8                 21.7%               0.3%               2.7%              1.2%
6        4171_1         0.07            173.9                 58.1%               1.6%               2.1%              0.5%

đó là chính xác. Please export table to file CSV

# export individually as CSV
tables[0].to_csv["foo.csv"]

CSV không phải là lựa chọn duy nhất;

import camelot

# PDF file to extract tables from
file = "foo.pdf"
2

Hoặc nếu bạn muốn xuất tất cả các bảng trong một lần

import camelot

# PDF file to extract tables from
file = "foo.pdf"
3

tham số f cho biết định dạng tệp, trong trường hợp này là "csv". Bằng cách đặt tham số nén bằng True, thao tác này sẽ tạo tệp ZIP chứa tất cả các bảng ở định dạng CSV

Bạn cũng có thể xuất các bảng sang định dạng HTML

import camelot

# PDF file to extract tables from
file = "foo.pdf"
0

hoặc bạn cũng có thể xuất sang các định dạng khác như JSON và Excel

Điều đáng chú ý là Camelot chỉ hoạt động với các tệp PDF dựa trên văn bản chứ không phải tài liệu được quét. Nếu bạn có thể nhấp và kéo để chọn văn bản trong bảng của mình trong quá trình xem PDF, thì đó là PDF dựa trên văn bản, làm điều đó, điều này sẽ hoạt động trên giấy tờ, sách, tài liệu, v. v

Đọc thêm. Cách chia nhỏ tệp PDF bằng Python

Trích xuất các bảng PDF bằng Tabula-py

Mở tệp Python mới và nhập tabula

import camelot

# PDF file to extract tables from
file = "foo.pdf"
1

Chúng tôi chỉ đơn giản sử dụng phương pháp

# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
0 để trích xuất các bảng trong tệp PDF [một lần nữa, hãy lấy ví dụ PDF tại đây]
import camelot

# PDF file to extract tables from
file = "foo.pdf"
2

We set

# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
1 thành
# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
2 để trích xuất các bảng trong tất cả các trang PDF, phương thức
# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
3] trả về danh sách các
# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
4 sắc trúc, mỗi
# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
4 tương ứng với một bảng. Bạn cũng có thể chuyển một URL tới phương thức này và nó sẽ tự động tải xuống tệp PDF trước khi giải nén các bảng

Đoạn mã dưới đây là một ví dụ về công việc lặp qua tất cả các bảng được trích xuất và lưu chúng dưới dạng bảng tính Excel

import camelot

# PDF file to extract tables from
file = "foo.pdf"
3

Điều này sẽ tạo thư mục

# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
6 và đặt tất cả các bảng được phát hiện ở định dạng Excel vào thư mục đó, hãy dùng thử

Bây giờ, nếu bạn muốn trích xuất tất cả các bảng từ tệp PDF và điền chúng vào tệp tệp CSV thì sao?

import camelot

# PDF file to extract tables from
file = "foo.pdf"
4

Nếu bạn có nhiều tệp PDF và bạn muốn chạy phần trên tất cả chúng, thì bạn có thể sử dụng phương pháp

# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
7____15

Điều này sẽ xem xét thư mục

# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
8 và xuất tệp CSV cho từng tệp PDF trong thư mục đó

Phần kết luận

Đối với các tệp lớn, thư viện camelot có xu hướng hoạt động tốt hơn tabula-py. Tuy nhiên, đôi khi bạn sẽ gặp phải

# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
9 đối với một số tệp PDF khi sử dụng thư viện camelot, bạn có thể sử dụng tabula-py thay thế

Lưu ý rằng điều này sẽ không chuyển đổi các ký tự hình ảnh thành văn bản kỹ thuật số. Nếu muốn, bạn có thể sử dụng các kỹ thuật OCR để chuyển đổi các ký tự quang học của hình ảnh thành văn bản thực tế có thể thao tác được trong Python. Các hướng dẫn dưới đây có thể giúp bạn

Dưới đây là một số hướng dẫn PDF có liên quan có thể giúp bạn trong công việc của mình

To know full list, please check the page of list

Được rồi, đây là nó cho hướng dẫn này. Kiểm tra tài liệu chính thức của camelot và tài liệu chính thức của tabula-py để biết thêm thông tin chi tiết

Làm cách nào để trích xuất dữ liệu từ tệp dữ liệu trong python?

Thao tác và trích xuất dữ liệu sử dụng cột tiêu đề và vị trí chỉ mục . Sử dụng trình cắt để chọn bộ dữ liệu từ DataFrame. Sử dụng nhãn và thiết lập chỉ mục dựa trên số nguyên để chọn phạm vi dữ liệu trong khung dữ liệu. Chỉ định lại các giá trị trong tập hợp con của DataFrame.

Làm cách nào để trích xuất dữ liệu từ bảng bằng gấu trúc?

Cách trích xuất dữ liệu từ chuỗi và khung dữ liệu hiện có trong cấu trúc .

cảnh 1. Create a string from a current string.

kịch bản 2. Tạo Sê-ri từ nhiều Sê-ri trong DataFrame.

kịch bản 3. Tạo nhiều Sê-ri từ Sê-ri hiện có.

love 4. Tạo nhiều sê-ri từ nhiều sê-ri [i. e. , Khung dữ liệu]

Làm cách nào để trích xuất bảng dữ liệu HTML trong python?

Để trích xuất một bảng từ HTML, trước tiên bạn cần mở các công cụ dành cho nhà phát triển của mình để xem HTML trông như thế nào và xác minh xem đó thực sự là một bảng chứ không phải một bảng . Bạn mở công cụ dành cho nhà phát triển bằng phím F12, xem tab “Thành phần” và đánh dấu thành phần bạn quan tâm .

Làm cách nào để trích xuất bảng dữ liệu thành tệp CSV bằng python?

Trong hướng dẫn này, bạn sẽ thấy các bước hoàn chỉnh để xuất bảng SQL Server sang tệp CSV bằng Python.

Chủ Đề