一、Python讀取PDF內容
Python是一種非常流行的編程語言,擁有非常豐富的第三方庫,其中包括處理PDF文件的庫。PyPDF2是Python中處理PDF的一種常用的第三方庫,可以用來合併、分割、加密、解密、旋轉、提取、插入、替換PDF頁面等操作。讀取PDF文件的第一步便是讀取PDF文本內容。可以通過以下代碼讀取PDF文件中的文本內容:
import PyPDF2 with open('example.pdf', mode='rb') as file: reader = PyPDF2.PdfFileReader(file) contents = '' for i in range(reader.getNumPages()): contents += reader.getPage(i).extractText() print(contents)
在以上代碼中,我們使用了Python內置的with…語句,通過rb模式讀取PDF文件,並創建了一個PdfFileReader對象。通過getNumPages()函數獲取PDF文件的總頁數,使用getPage()函數獲取所有頁面的文本內容,並拼接起來,最後列印出來。
二、Python讀取表格數據
有時,我們需要從PDF文件中讀取表格數據。PyPDF2庫可以幫助我們讀取PDF文本內容,但是無法識別文本中的表格,我們需要使用其他庫。例如,使用camelot庫可以讀取PDF文件中的表格數據。以下示例演示如何使用camelot讀取PDF文件中的表格數據:
!pip install camelot-py[cv] import camelot tables = camelot.read_pdf('example.pdf') tables.export('example.csv', f='csv', compress=True)
在以上代碼中,我們首先通過pip安裝camelot庫。然後,使用camelot.read_pdf()函數讀取PDF文件中的表格數據,並將其保存為tables變數。最後,我們可以使用tables.export()函數將表格數據以csv格式導出。
三、Python讀取PDF文件
當我們需要讀取本地的PDF文件時,可以使用Python內置的open()函數來打開PDF文件,然後使用PyPDF2庫讀取PDF文件的內容。以下是一個示例代碼:
import PyPDF2 with open('example.pdf', mode='rb') as file: reader = PyPDF2.PdfFileReader(file) print(reader.getDocumentInfo())
在以上代碼中,我們打開名為example.pdf的本地PDF文件,並使用PdfFileReader類讀取該文件。我們還列印了PDF文件的元數據。
四、Python讀取PDF在線
有時我們需要讀取在網路上的PDF文件,在Python中也可以很容易地實現。我們可以使用requests庫訪問網路上的PDF文件,並使用PyPDF2庫讀取PDF文件的內容。以下是一個示例代碼:
import requests import PyPDF2 url = 'http://example.com/example.pdf' response = requests.get(url) with open('example.pdf', 'wb') as f: f.write(response.content) with open('example.pdf', mode='rb') as file: reader = PyPDF2.PdfFileReader(file) print(reader.getDocumentInfo())
在以上代碼中,我們訪問了一個名為example.pdf的在線PDF文件,並通過requests與響應對象response讀取該文件。我們使用二進位模式並使用PyPDF2庫讀取文件內容,並列印PDF文件的元數據。
五、Python讀取PDF印章文字
印章文字是需要從PDF文件中讀取的一種非常重要的元素。但是,PyPDF2庫並不支持讀取印章文字,因為印章文字可能是圖像的形式。對於這種情況,我們可以使用其他庫。例如,使用pdfminer庫可以讀取PDF中的文本和圖像。以下是一個示例代碼:
!pip install pdfminer.six from pdfminer.layout import LAParams from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.converter import PDFPageAggregator from pdfminer.pdfpage import PDFPage import io resource_manager = PDFResourceManager() with io.BytesIO() as file: laparams = LAParams() device = PDFPageAggregator(resource_manager, laparams=laparams) interpreter = PDFPageInterpreter(resource_manager, device) with open('example.pdf', 'rb') as pdf_file: for page in PDFPage.get_pages(pdf_file): interpreter.process_page(page) layout = device.get_result() for element in layout: if hasattr(element, 'get_text'): print(element.get_text())
在以上代碼中,我們使用pdfminer庫從PDF文件中讀取文本和圖像。我們首先導入必要的函數和模塊,並使用BytesIO()創建一個BytesIO對象來存儲PDF文本內容。然後使用PDFResourceManager()創建一個PDF資源管理器對象,並設置LAParams()參數。接下來,我們創建一個PDFPageAggregator()對象,並使用PDFPageInterpreter()解釋器執行讀取。最後,我們遍歷布局對象,列印PDF文件中的文本和圖像。
六、Python讀取PDF創建時間
有時,我們需要了解PDF文件的創建時間。PyPDF2庫提供了一個createDate屬性,可以獲取PDF文件的創建時間。以下是一個示例代碼:
import PyPDF2 with open('example.pdf', mode='rb') as file: reader = PyPDF2.PdfFileReader(file) print(reader.getDocumentInfo().get('/CreationDate'))
在以上代碼中,我們使用PdfFileReader類從PDF文件中讀取內容。我們使用getDocumentInfo()獲取PDF文檔的元數據,並使用get(‘/CreationDate’)獲取PDF文件的創建時間。
七、Python讀取PDF模組
PDF文件是由大量的模組組成的。PyPDF2庫提供了一個getNumPages()方法,返回PDF文件中模組的數量。以下是一個示例代碼:
import PyPDF2 with open('example.pdf', mode='rb') as file: reader = PyPDF2.PdfFileReader(file) print(reader.getNumPages())
在以上代碼中,我們使用PdfFileReader類從PDF文件中讀取內容,並使用getNumPages()方法獲取PDF文件中模組的數量。
八、Python讀取PDF中的數據
PDF文件中的數據通常很難被提取出來。但是,使用PDFMiner可以輕鬆地讀取PDF文件中的內容。以下示例演示如何使用PDFMiner讀取PDF文件中的內容。
!pip install pdfminer.six from pdfminer.pdfparser import PDFParser from pdfminer.pdfdocument import PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.converter import PDFPageAggregator from pdfminer.pdfpage import PDFPage from pdfminer.layout import LAParams import io resource_manager = PDFResourceManager() with io.BytesIO() as file: laparams = LAParams() device = PDFPageAggregator(resource_manager, laparams=laparams) interpreter = PDFPageInterpreter(resource_manager, device) with open('example.pdf', mode='rb') as pdf_file: parser = PDFParser(pdf_file) document = PDFDocument(parser) fp = document.get_pages() for page in fp: interpreter.process_page(page) layout = device.get_result() for element in layout: if hasattr(element, 'get_text'): print(element.get_text())
在以上代碼中,我們首先安裝了pdfminer庫。我們使用PDFParser()、PDFDocument()和PDFResourceManager()類從PDF文件中創建元數據,使用BytesIO()創建了一個BytesIO對象來存儲PDF文件內容。通過遍歷布局對象,並列印PDF文件中的文本內容,從而提取PDF文件中的數據。
九、Python讀取PDF識別日期
從PDF文件中識別日期通常很有用。以下示例演示如何使用Python從PDF文件中識別日期。
import PyPDF2 import re with open('example.pdf', mode='rb') as file: reader = PyPDF2.PdfFileReader(file) contents = '' for i in range(reader.getNumPages()): contents += reader.getPage(i).extractText() search = re.compile('\d\d/\d\d/\d\d\d\d') matches = search.finditer(contents) for match in matches: print(match.group(0))
在以上代碼中,我們使用了Python內置的re模塊來使用正則表達式識別PDF文件中的日期。我們使用PyPDF2庫中的PdfFileReader類從PDF文件中提取文本。然後使用正則表達式來查找日期並列印它們。
原創文章,作者:ALPQX,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/360433.html