1. Python betreibt PDF (pdfplumber liest PDF und schreibt es in Excel)
1.1 Installieren Sie die pdfplumber-Modulbibliothek:
安装pdfplumber: pip install pdfplumber
复制代码
pdfplumber.PDF-Klasse
Die Klasse pdfplumber.PDF stellt ein einzelnes PDF dar und verfügt über zwei Haupteigenschaften:
Attribute | veranschaulichen |
---|---|
pdf.metadata | Holen Sie sich ein Wörterbuch mit Metadaten-Schlüssel/Wert-Paaren aus der PDF-Datei „Info“. Enthält normalerweise „CreationDate“, „ModDater“, „Produzent“ usw. |
pdf.pages | Gibt eine Liste mit pdfplumber.Page-Instanzen zurück, wobei jede Instanz Informationen auf jeder Seite der PDF-Datei darstellt |
pdfplumber. Seitenklasse
Allgemeine Eigenschaften der Klasse pdfplumber.Page
Attribut page_number | veranschaulichen |
---|---|
.Seitennummer | Fortlaufende Seitennummern, beginnend mit 1 für die erste Seite, beginnend mit 2 für die zweite Seite usw |
.Breite | Seitenbreite |
.Höhe | Seitenhöhe |
.objects/ . chars/ .lines/ .rects/ . Kurven/ .Figuren/ . Bilder | Jede dieser Eigenschaften ist eine Liste, und jede Liste enthält ein Wörterbuch für jedes dieser auf der Seite eingebetteten Objekte. Einzelheiten finden Sie weiter unten unter „Objekte“. |
Gängige Methode
Methodenname | veranschaulichen |
---|---|
.extract_ text( ) | Es wird verwendet, um den Text auf der Seite zu extrahieren und alle Zeichenobjekte der Seite in der Zeichenfolge zu organisieren |
.extract_words( ) | Alle Wörter und die zugehörigen Informationen werden zurückgegeben |
. extract_tables() | Extrahieren Sie das Formular der Seite |
.vorstellen() | Gibt bei Verwendung zum visuellen Debuggen eine Instanz der Pageimage-Klasse zurück |
.schließen() | Standardmäßig speichert das Page-Objekt seine Layout- und Objektinformationen zwischen, um eine erneute Verarbeitung zu vermeiden. Beim Parsen großer PDF-Dateien können diese zwischengespeicherten Eigenschaften jedoch viel Speicher beanspruchen. Mit dieser Methode können Sie den Cache leeren und Speicher freigeben. |
1.2 Gemeinsame Operationen
PDF ist die Abkürzung für Portable Document Format und dieser Dateityp wird normalerweise .pdf
als Erweiterung verwendet. Bei der täglichen Entwicklungsarbeit sind die beiden Aufgaben, mit denen man am häufigsten konfrontiert wird, das Lesen von Textinhalten aus PDF und das Generieren von PDF-Dokumenten mit vorhandenen Inhalten.
1.读取pdf文档信息
2.输出总页数
3.读取第一页宽度、高度等信息
4.读取文本第一页
加载pdf
pdfplumber.open( "路径/文件名. pdf".pas sword="test "laparams={ "line_ _overlap'”0.7 })
password : 要加载受密码保护的PDF ,请传递password关键字参数
laparams :要将布局分析参数设置为pdfminer. six的布局引擎,请传递laparams关键字参数
复制代码
1.2.1 Python liest PDF-Dateien
Die PDF-Datei lautet wie folgt
1.2.2 Python-Code zum Lesen von PDF-Dateien
import pdfplumber
# 加载pdf
path = "C:/Users/Administrator/Desktop/test08/test11 - 多页.pdf"
with pdfplumber.open(path) as pdf:
print(pdf)
print(type(pdf))
# 读取pdf文档信息
print("pdf文档信息:", pdf.metadata)
# 输出总页数
print("pdf文档总页数:", len(pdf.pages))
# 1.读取第一页宽度、高度等信息
first_page = pdf.pages[0] # pdfplumber.Page对象第一页
# 查看页码
print('pdf页码:', first_page.page_number)
# 查看页宽
print('pdf页宽:', first_page.width)
# 查看页高
print('pdf页高:', first_page.height)
# 2.读取文本第一页
first_page = pdf.pages[0] # pdfplumber.Page对象第一页
text = first_page.extract_text()
print(text)
复制代码
执行结果:
"D:\Program Files1\Python\python.exe" D:/Pycharm-work/pythonTest/打卡/0811读取pdf.py
<pdfplumber.pdf.PDF object at 0x0000000002846278>
<class 'pdfplumber.pdf.PDF'>
pdf文档信息: {'Author': '', 'Comments': '', 'Company': '', 'CreationDate': "D:20220812102327+02'23'", 'Creator': 'WPS 表格', 'Keywords': '', 'ModDate': "D:20220812102327+02'23'", 'Producer': '', 'SourceModified': "D:20220812102327+02'23'", 'Subject': '', 'Title': '', 'Trapped': 'False'}
pdf文档总页数: 2
pdf页码: 1
pdf页宽: 595.25
pdf页高: 841.85
姓名 年龄 性别 地址 学习技能
张三 20 女 北京 python
李四 25 男 深圳 java
赵五 28 男 上海 C++
孙六 23 女 广州 python
钱七 27 男 珠海 python
张101 20 女 北京 python
.......
.......
张150 27 男 珠海 python
张151 20 女 北京 python
张152 25 男 深圳 java
Process finished with exit code 0
复制代码
1.2.3 Python liest PDF-Dateien und speichert sie im Excel-Code
import pdfplumber
import xlwt
# 加载pdf
path = "C:/Users/Administrator/Desktop/test08/test11 - 多页.pdf"
with pdfplumber.open(path) as pdf:
page_1 = pdf.pages[0] # pdf第一页
table_1 = page_1.extract_table() # 读取表格数据
print(table_1)
# 1.创建Excel对象
workbook = xlwt.Workbook(encoding='utf8')
# 2.新建sheet表
worksheet = workbook.add_sheet('Sheet1')
# 3.自定义列名
clo1 = table_1[0]
# 4.将列表元组clo1写入sheet表单中的第一行
for i in range(0, len(clo1)):
worksheet.write(0, i, clo1[i])
# 5.将数据写进sheet表单中
for i in range(0, len(table_1[1:])):
data = table_1[1:][i]
for j in range(0, len(clo1)):
worksheet.write(i + 1, j, data[j])
# 保存Excel文件分两种
workbook.save('test88.xls')
复制代码
Ergebnisse der: