一个财务做的python代码--PDF发票文件信息提取

一、引言(我为什么做)

       随着国家不断推行数字发票,现在工作中越来越多的电子发票被收取和开具。这给财务人员高效登记大量发票信息提供了充足的环境。日常中,手动从每张发票中提取关键信息并录入Excel表格不仅耗时费力,还容易出错。本文提出了一种基于Python的自动化解决方案,该方案利用pdfplumber库从PDF格式的电子发票中提取文本信息,并结合正则表达式进行信息匹配和清洗,最后将整理好的数据自动写入Excel文件中。

        经过我在网络的海洋中游历了无数个深夜,同时借助各大AI,终于大功告成。代码亲测99.9999%有用,而且我觉得很顺畅。文末附上完整代码。(时间就是金钱,原谅我开启了付费*^▽^*)

二、解决方案概述(怎么做)

注意注意!!!!!本文代码只能运用于电子税务局开具出来的pdf发票,不支持纯纸质扫描后生成的pdf。目前只能识别每张发票是单行开票明细,多行开票明细的等我再用几个深夜给他搞出来!
2.1 环境准备
        首先,确保你的Python环境中安装了必要的库:pdfplumber用于处理PDF文件,re用于正则表达式匹配,os用于文件路径操作,openpyxl用于读写Excel文件。可以通过以下命令安装这些库:
pip install pdfplumber

pip install openpyxl

pip install os

pip install re
2.2 PDF文件遍历与读取
        解决方案的第一步是遍历指定目录中的所有PDF文件。使用os.walk函数递归遍历目录,筛选出所有以.pdf结尾的文件。对于每个PDF文件,使用pdfplumber打开并读取第一页的文本内容。
def get_pdf(dir_path):
    pdf_file = []
    for root, sub_dirs, file_names in os.walk(dir_path):
        for name in file_names:
            if name.endswith('.pdf'):
                filepath = os.path.join(root, name)
                pdf_file.append(filepath)
    return pdf_file
2.3 信息提取与清洗
        接下来,使用正则表达式从提取的文本中匹配关键信息,如发票类型、发票号码、开票日期、纳税人识别号、金额和公司名称等。为了提高匹配的准确性和灵活性,正则表达式设计时考虑了多种可能的格式和字符组合。
def re_text(bt, text):
    m1 = re.search(bt, text)
    if m

你可能感兴趣的:(pdf,python,职场和发展)