自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python自動(dòng)化辦公實(shí)戰(zhàn):PDF文本提取技巧

開(kāi)發(fā) 前端
在本文中,我們將介紹如何使用Python中的PyPDF2庫(kù)來(lái)提取PDF文件中的內(nèi)嵌文字內(nèi)容。

PDF文件具有跨平臺(tái)的特點(diǎn),可以在不同的操作系統(tǒng)和設(shè)備上保持一致的顯示效果。但是,PDF文件也有一些缺點(diǎn),比如不易編輯、復(fù)制和搜索。如果我們想要從PDF文件中提取文本內(nèi)容,該怎么辦呢?

在本教程中,我們將介紹如何使用Python中的PyPDF2庫(kù)來(lái)提取PDF文件中的內(nèi)嵌文字內(nèi)容。PyPDF2是一個(gè)純Python的庫(kù),可以讀取、分割、合并、裁剪和轉(zhuǎn)換PDF文件。它不需要安裝任何其他的依賴(lài)庫(kù),也不需要調(diào)用外部的程序或服務(wù)。

安裝PyPDF2庫(kù)

要使用PyPDF2庫(kù),我們首先需要安裝它。我們可以使用pip命令來(lái)安裝,如下所示:

pip install PyPDF2

如果安裝成功,我們可以在Python中導(dǎo)入PyPDF2模塊,如下所示:

import PyPDF2

讀取PDF文件

要從PDF文件中提取文本內(nèi)容,我們首先需要讀取PDF文件。我們可以使用PyPDF2.PdfReader類(lèi)來(lái)創(chuàng)建一個(gè)PDF文件的讀取對(duì)象,然后傳入一個(gè)文件對(duì)象或一個(gè)文件路徑作為參數(shù)。例如,假設(shè)我們有一個(gè)名為sample.pdf的PDF文件,我們可以用以下代碼來(lái)讀取它:

# 通過(guò)文件對(duì)象來(lái)讀取
with open("sample.pdf", "rb") as f: # 以二進(jìn)制模式打開(kāi)文件
    reader = PyPDF2.PdfReader(f) # 創(chuàng)建一個(gè)PdfFileReader對(duì)象

# 通過(guò)文件路徑來(lái)讀取
reader = PyPDF2.PdfReader("sample.pdf") # 創(chuàng)建一個(gè)PdfFileReader對(duì)象

注意,我們必須以二進(jìn)制模式("rb")來(lái)打開(kāi)PDF文件,否則會(huì)出現(xiàn)錯(cuò)誤。

獲取PDF文件的基本信息

在讀取了PDF文件之后,我們可以使用PdfReader對(duì)象的一些屬性和方法來(lái)獲取PDF文件的基本信息,例如頁(yè)數(shù)、作者、標(biāo)題等。例如:

# 獲取頁(yè)數(shù)
num_pages = len(reader.pages) # 返回一個(gè)整數(shù),表示PDF文件的總頁(yè)數(shù)
print(f"該P(yáng)DF文件共有{num_pages}頁(yè)")

# 獲取作者
author = reader.metadata.author # 返回一個(gè)字符串,表示PDF文件的作者信息
print(f"該P(yáng)DF文件的作者是{author}")

# 獲取標(biāo)題
title = reader.metadata.title # 返回一個(gè)字符串,表示PDF文件的標(biāo)題信息
print(f"該P(yáng)DF文件的標(biāo)題是{title}")

提取單頁(yè)文本內(nèi)容

要從單頁(yè)中提取文本內(nèi)容,我們可以使用PdfReader對(duì)象的pages來(lái)獲取指定頁(yè)碼的頁(yè)面對(duì)象(PyPDF2.pdf.PageObject類(lèi)),然后使用頁(yè)面對(duì)象的extract_text()方法來(lái)獲取頁(yè)面中的文本內(nèi)容。例如:

# 獲取第一頁(yè)的頁(yè)面對(duì)象
page1 = reader.pages[0]# 傳入一個(gè)整數(shù)作為參數(shù),表示頁(yè)碼(從0開(kāi)始)

# 提取第一頁(yè)的文本內(nèi)容
text1 = page1.extract_text() # 返回一個(gè)字符串,表示頁(yè)面中的文本內(nèi)容

# 打印第一頁(yè)的文本內(nèi)容
print(text1)

注意,extract_text()方法只能提取內(nèi)嵌文字內(nèi)容,不能提取圖像或其他元素。另外,提取出來(lái)的文本內(nèi)容可能不完全符合原始格式,可能存在換行、空格、缺失等問(wèn)題。

提取多頁(yè)文本內(nèi)容

要從多頁(yè)中提取文本內(nèi)容,我們可以使用一個(gè)循環(huán)來(lái)遍歷PdfReader對(duì)象的每一頁(yè),然后使用extract_text()方法來(lái)獲取每一頁(yè)的文本內(nèi)容,并將它們拼接成一個(gè)完整的字符串。例如:

# 創(chuàng)建一個(gè)空字符串,用于存儲(chǔ)所有頁(yè)面的文本內(nèi)容
text = ""

# 遍歷每一頁(yè)
for i in range(num_pages):
    # 獲取當(dāng)前頁(yè)的頁(yè)面對(duì)象
    page = reader.pages[i]
    # 提取當(dāng)前頁(yè)的文本內(nèi)容
    page_text = page.extract_text()
    # 將當(dāng)前頁(yè)的文本內(nèi)容添加到總字符串中
    text += page_text

# 打印所有頁(yè)面的文本內(nèi)容
print(text)

保存提取的文本內(nèi)容

提取了PDF文件中的文本內(nèi)容之后,我們可以將它保存到一個(gè)文本文件中,以便后續(xù)的處理或分析。我們可以使用Python的內(nèi)置函數(shù)open()來(lái)創(chuàng)建一個(gè)文本文件對(duì)象,然后使用write()方法來(lái)寫(xiě)入提取的文本內(nèi)容。例如:

# 創(chuàng)建一個(gè)名為output.txt的文本文件對(duì)象,以寫(xiě)入模式打開(kāi)
with open("output.txt", "w", encoding="utf-8") as f: # 指定編碼為utf-8,避免亂碼
    # 將提取的文本內(nèi)容寫(xiě)入到文件中
    f.write(text)

注意,我們需要指定編碼為utf-8,以避免出現(xiàn)亂碼。

如下是:sample.pdf和output.txt文件的部分截圖

總結(jié)

在本教程中,我們介紹了如何使用Python中的PyPDF2庫(kù)來(lái)提取PDF文件中的內(nèi)嵌文字內(nèi)容。我們首先安裝了PyPDF2庫(kù),并導(dǎo)入了PyPDF2模塊。然后,我們使用PyPDF2.PdfReader類(lèi)來(lái)讀取PDF文件,并獲取了PDF文件的基本信息。接著,我們使用pages和extract_text()方法來(lái)提取單頁(yè)或多頁(yè)的文本內(nèi)容,并將它們保存到一個(gè)文本文件中。通過(guò)這些操作,我們可以實(shí)現(xiàn)Python自動(dòng)化辦公的一個(gè)功能,即從PDF文件中提取文本內(nèi)容。

責(zé)任編輯:趙寧寧 來(lái)源: Python都知道
相關(guān)推薦

2021-12-28 09:24:49

Python郵件Word

2022-06-13 09:12:04

PythonPDF代碼

2021-07-09 07:24:47

Python自動(dòng)化辦公

2025-04-23 08:15:00

2020-11-05 12:56:19

Python辦公自動(dòng)化

2022-03-21 10:09:08

PythonExcel郵件

2024-05-13 16:29:56

Python自動(dòng)化

2022-07-05 08:26:10

Python報(bào)表自動(dòng)化郵箱

2021-12-14 07:40:08

Excel自動(dòng)化辦公

2020-04-21 10:45:47

PythonWordExcel

2024-10-28 19:36:05

2021-02-01 12:24:40

Python日志Expect

2024-05-29 11:16:33

PythonExcel

2024-09-24 17:20:16

Python自動(dòng)化辦公

2018-10-07 15:18:36

2024-08-16 21:51:42

2024-11-11 16:55:54

2013-04-16 14:55:21

自動(dòng)化運(yùn)維Puppet實(shí)戰(zhàn)

2022-08-04 13:27:35

Pythonopenpyxl

2021-03-10 10:20:06

Linux文本命令
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)