2401_84482571 2024-09-06 09:22 采纳率: 66.7%
浏览 6

为什么读取出来没有数据

import re
from pdfminer.high_level import extract_text
from pdfminer.layout import LAParams
import openpyxl

提取PDF中的文本信息

with open('发票.pdf', 'rb') as file:
text = extract_text(file, laparams=LAParams(line_margin=1))

定义正则表达式

regex = r"编号:(.*?)(?:\n|$)"
xinyongcodes = re.findall(regex,text)

创建一个新的Excel工作簿

workbook = openpyxl.Workbook()
sheet = workbook.active

写入数据到Excel

row_num = 1
for code in xinyongcodes:
if code.strip():
sheet.cell(row=row_num, column=1, value=code.strip())
row_num += 1

保存Excel文件

workbook.save(filename='luomiqi1.xlsx')

  • 写回答

1条回答 默认 最新

  • 小ᶻ☡꙳ᵃⁱᵍᶜ꙳ 优质创作者: 人工智能技术领域 2024-09-07 10:44
    关注

    该回答引用自GPT-4o,由博主小ᶻZ࿆编写:

    问题分析:

    1. PDF 内容提取失败:如果没有数据,首先需要确认 pdfminer 是否成功提取了 PDF 中的文本。可以通过打印 text 的内容来检查是否成功获取到了数据。
      print(text)  # 检查提取的文本内容
      
    2. 文件路径和编码问题:确保 发票.pdf 的路径是正确的,并且文件能够正常读取。如果文件名中有中文字符,可能需要处理文件编码问题。

    解决方案建议:

    1. 确认 PDF 内容提取是否正常:先通过 print(text) 检查提取到的内容。
    2. 调整正则表达式:如果提取的内容结构复杂,可以使用更精确的正则表达式或逐行解析。
    3. 使用其他工具处理复杂 PDF:如果 pdfminer 无法处理,可以尝试 PyMuPDF 或者使用 OCR 进行文本提取。

    通过这些检查,应该能够找到读取不出数据的原因。

    如有帮助,题主可以采纳一下嘛,谢谢~

    评论

报告相同问题?

问题事件

  • 创建了问题 9月6日