参考资料

  1. Python代码格式化工具有哪些
  2. python怎么读取pdf文件
  3. python在线编辑器
  4. Python: json模块

Python读取PDF文件的方法

1. 使用PyPDF2库

安装方法

pip install PyPDF2

示例代码

import PyPDF2

# 打开PDF文件
with open('example.pdf', 'rb') as file:
    reader = PyPDF2.PdfReader(file)
    
    # 获取页数
    num_pages = len(reader.pages)
    print(f"总页数: {num_pages}")
    
    # 读取第一页内容
    first_page = reader.pages[0]
    text = first_page.extract_text()
    print(text)

常用属性/方法

  • PdfReader.pages: 返回所有页面的列表

  • PageObject.extract_text(): 提取页面文本

  • PdfReader.metadata: 获取PDF元数据(作者、标题等)

2. 使用pdfplumber库(推荐用于表格提取)

安装方法

pip install pdfplumber

示例代码

import pdfplumber

with pdfplumber.open('example.pdf') as pdf:
    # 获取第一页
    first_page = pdf.pages[0]
    
    # 提取文本
    text = first_page.extract_text()
    print(text)
    
    # 提取表格
    tables = first_page.extract_tables()
    for table in tables:
        for row in table:
            print(row)

常用方法

  • extract_text(): 提取页面文本

  • extract_tables(): 提取表格数据

  • extract_words(): 提取单词及其位置信息

  • to_image(): 生成页面图像(需安装wand库)

3. 使用pdfminer.six(复杂PDF处理)

安装方法

pip install pdfminer.six

示例代码

from pdfminer.high_level import extract_text

text = extract_text('example.pdf')
print(text)

4. 读取加密PDF(PyPDF2示例)

import PyPDF2

with open('encrypted.pdf', 'rb') as file:
    reader = PyPDF2.PdfReader(file)
    if reader.is_encrypted:
        reader.decrypt('password')  # 提供密码
    text = reader.pages[0].extract_text()

注意事项:

  1. 不同库对PDF格式支持有差异

  2. 扫描的PDF(图片形式)需要OCR处理

  3. 表格数据建议使用pdfplumber或tabula-py

  4. 处理大文件时注意内存消耗