提取pdf图档中的物料编码

一、摘要

在这里插入图片描述

图1 图档示例

  本篇代码目的是从指定文件夹下的PDF文件中提取物料编码等相关信息,并将这些信息存储在列表中输出。这段代码主要实现了以下功能:

  1. 定义一个file_name函数,用于获取指定文件夹下所有文件的完整路径。通过遍历文件夹和子文件夹,将每个文件的路径添加到列表中并返回。

  2. 定义一个Extract_material_code函数,用于从PDF文件中提取物料编码、零件名称和材料名称。该函数首先获取PDF文件的文件名,然后读取PDF文档中的文本内容。接着,使用正则表达式从文本中匹配物料编码和材料名称,并返回零件名称、物料编码和材料名称的元组。如果匹配失败,则返回零件名称和两个空字符串。

  3. 在主程序中,首先定义一个空列表information_list用于存储提取的信息。然后,调用file_name函数获取指定文件夹下所有文件的路径列表。接着,遍历路径列表,筛选出PDF文件,并调用Extract_material_code函数提取每个PDF文件的物料编码等信息,将结果添加到information_list中。最后,打印出information_list的内容。

二、架构流程

  1. 导入所需的模块: 虽然代码中没有明确地导入,但该脚本需要 os, fitz, 和 re 模块。os 用于文件和目录操作,fitz 用于处理 PDF 文件,而 re 用于正则表达式匹配。

  2. 定义 file_name 函数: 该函数接受一个文件夹路径作为参数,并返回该文件夹及其所有子文件夹中所有文件的路径列表。它使用 os.walk 遍历给定目录及其所有子目录,并收集每个子目录中的文件路径。

  3. 定义 Extract_material_code 函数: 这个函数接受一个 PDF 文件的路径作为参数,并尝试从中提取物料编码和材料名称。它首先从文件名中提取零件名称,然后打开 PDF 文件并提取所有文本。接着,它使用正则表达式查找特定的文本模式以提取物料编码和材料名称。如果找不到这些信息,则返回空字符串。

  4. 主执行部分:

    • 首先,创建一个空列表 information_list,用于存储从每个 PDF 文件中提取的信息。
    • 然后,调用 file_name 函数来获取指定文件夹中所有文件的路径列表。
    • 对于 archives_path_list 中的每个文件路径,调用 Extract_material_code 函数以提取信息。提取的信息(零件名称、物料编码、材料名称)被添加到 information_list 中。
    • 最后,打印 information_list,该列表现在包含从所有 PDF 文件中提取的信息。

  这个脚本的主要目的是从特定文件夹中的所有 PDF 文件中提取物料编码和材料名称,并将这些信息以列表的形式输出。

三、完整代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2023-08-26 16:51
# @Author : Leuanghing Chen
# @File : 提取pdf图档物料编码.py
# @Software : PyCharm

import fitz   # pip install PyMuPDF
import re
import os


# 获取当前文件夹下所有文件名
def file_name(file_dir):
    #   print(root) # 当前目录路径
    #   print(dirs) # 当前路径下所有子目录
    #   print(files) # 当前路径下所有非目录子文件
    path_list = []
    for root, dirs, files in os.walk(file_dir):
        for i in range(len(files)):
            path = root + '\\' + files[i]
            path_list.append(path)
    return path_list


# 提取pdf图档上的物料编码
def Extract_material_code(pdf_path):
    # 获取零件名称
    filename = pdf_path.split('\\')[-1]
    part_name = filename.replace('.pdf', '')

    text = ""
    pdf_document = fitz.open(pdf_path)
    # 提取pdf文字
    for page_num in range(pdf_document.page_count):
        text += pdf_document[page_num].get_text()

    try:
        # 物料编码
        regex_material_code = r'物料编码:(.*?)\n'
        material_code = re.findall(regex_material_code, text, re.S)[0]
        # 材料
        regex_material_name = r'.*:.*\n(.*?)\n共.*张 第.*张'
        material_name = re.findall(regex_material_name, text, re.S)[0]

        return part_name, material_code, material_name

    except IndexError:
        return part_name, "", ""        # 对齐格式



if __name__ == '__main__':
    information_list = []

    archives_path_list = file_name(r'D:\python_demo\读取pdf文件\temp')   # 读取文件夹中的所有文件

    for archives_path in archives_path_list:
    	# 筛选pdf文件
	    if archives_path.split(".")[-1].lower() == 'pdf':
	        code_name_list = Extract_material_code(archives_path)
	        information_list.append(code_name_list)

    print(information_list)


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/439124.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UOS 与 Ubuntu 命令行打开安装包界面,双击打开界面调用安装包界面展示

UOS 使用deepin-deb-installer安装程序 deepin-deb-installer xxxxxxx.deb & Ubuntu snap-store --local-filename /home/seven/wps-office_1xxxxxxx.deb &

Android14音频进阶:AudioTrack如何拿到AudioFlinger创建的匿名共享内存(六十)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

聚观早报 | 腾讯QQ测试AI对话功能;哪吒L官宣4月交付

聚观早报每日整理最值得关注的行业重点事件,帮助大家及时了解最新行业动态,每日读报,就读聚观365资讯简报。 整理丨Cutie 3月8日消息 腾讯QQ测试AI对话功能 哪吒L官宣4月交付 中国对瑞士等6国试行免签 Redmi K70至尊版细节曝光 Meta正…

如何阅读“计算机界三大神书”之一 ——《计算机程序的构造和解释》SICP

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

git分布式管理-头歌实验冲突处理、忽略文件

一、解决冲突 任务描述 在团队协作开发过程中,可能你和团队中的其他成员,都修改了某个文件的某一部分内容,且其他成员已将该修改推送到了远程仓库。这样当你需要合并他的代码的时候,可能就会在内容上出现冲突,这个时候…

男人对年轻女人都吃不消是什么原因呢?

在这个快节奏的时代,男人与女人之间的关系变得越来越复杂。在许多情况下,男人对年轻女人都感到吃不消,这究竟是为什么呢? 首先,我们不得不承认,现代社会的价值观和审美观念发生了很大的变化。年轻女性越来越…

当GPT遇到网络安全

ChatGPT:是人工智能技术驱动的自然语言处理工具,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件、视频脚本、文案、翻译、代码等任务。GPT 是 …

稀疏数组实现

博文主要是自己学习的笔记,供自己以后复习使用, 参考的主要教程是B站的 尚硅谷数据结构和算法 稀疏数组(sparse array) 实际需求:五子棋程序中的存盘退出和续上盘的功能 问题分析: 如果直接用二维数组,很多值是默认…

vue3+elementPlus:el-table-column表格列动态设置单元格颜色

:cell-style属性 //html<el-tableempty-text"暂无数据":data"datalist.table":max-height"height"row-key"id"border:cell-style"cellStyle"> <el-table>//js //动态设置单元格颜色 const cellStyle ({ row, c…

深入探索Transformer时代下的NLP革新

《基于GPT-3、ChatGPT、GPT-4等Transformer架构的自然语言处理》主要聚焦于如何使用Python编程语言以及深度学习框架如PyTorch和TensorFlow来构建、训练和调整用于自然语言处理任务的深度神经网络架构&#xff0c;特别是以Transformer为核心模型的架构。 书中详细介绍了Transf…

【Ubuntu 20.04 / 22.04 LTS】最新 esp-matter SDK 软件编译环境搭建步骤

仓库链接&#xff1a;esp-matter SDK官方软件说明&#xff1a;ESP Matter Programming Guide官方参考文档&#xff1a;使用 Matter-SDK 快速搭建 Matter 环境 (Linux) 环境要求 Ubuntu 20.04 或 Ubuntu22.04网络环境支持访问 Gihub 在安装 esp-matter SDK 软件编译环境之前&a…

day9 指针 函数封装

1&#xff1a;在主函数定义字符数组&#xff0c;在自定义函数中实现字符串比较 4 int my_strcmp(char *a,char *b);5 int main(int argc, const char *argv[])6 {7 //strcmp 函数比叫ascii码值大小8 char a[10]"hello";9 char b[10]"helloo";1…

windows环境下搭建minio分布式存储系统并通过nginx实现负载均衡

一、环境准备 windows环境下的minio可执行文件&#xff08;官网下载地址&#xff09;以及nginx&#xff08;官网下载地址&#xff09; 二、本地搭建minio集群 2.1、创建minio存储目录 如下图所示&#xff0c;在minioData目录下创建八个空文件夹 2.2、批处理文件启动mini…

义乌等保测评公司有哪些?用哪款堡垒机好?

对于义乌&#xff0c;相信大家都听过&#xff0c;也都知道&#xff0c;耳熟能详。这不有义乌小伙伴在问&#xff0c;义乌等保测评公司有哪些&#xff1f;用哪款堡垒机好&#xff1f;今天我们就来简单聊聊。 义乌等保测评公司有哪些&#xff1f; 目前浙江义乌本地暂未有正规等保…

ETL与抖音数据同步,让数据流动无阻

在当今数字化时代&#xff0c;数据的价值日益凸显&#xff0c;企业需要从各种渠道获取有关用户行为、市场趋势和竞争对手活动的数据。作为一家专注于数据集成和转换的领先平台&#xff0c;ETLCloud为企业提供了强大的数据同步和转换功能。而与此同时&#xff0c;抖音作为一款热…

多模态融合技术升级!新阶段2大融合模式取得最优性能

传统的多模态融合方法面临着模态表示不一致、灵活性不足等问题&#xff0c;难以适应日益复杂的实际需求。 而随着大模型等新技术的发展&#xff0c;研究者将这些新技术与传统的多模态融合相结合&#xff0c;提出了新阶段的融合模式&#xff0c;包括多模态大模型时代的新架构、…

构建高效Web应用:Flask、Django和FastAPI的全面对比

构建高效Web应用&#xff1a;Flask、Django和FastAPI的全面对比 介绍Flask简介快速入门路由和视图函数模板渲染数据库操作Flask项目实战 Django简介快速入门模型和数据库视图和模板表单处理Django项目实战 FastAPI简介快速入门路径操作和参数请求和响应依赖注入FastAPI项目实战…

基于协同过滤的旅游推荐系统设计与实现

基于协同过滤的旅游推荐系统设计与实现 在当今旅游业蓬勃发展的背景下&#xff0c;人们对于旅游体验的需求日益增加&#xff0c;如何为用户提供更加个性化、精准的旅游推荐成为了旅游行业的一个重要课题。为解决这一问题&#xff0c;我们设计并实现了一个基于协同过滤的旅游推…

苹果电脑专业的Mac垃圾清理工具CleanMyMac X4.14.7

CleanMyMac X是一款专业的Mac清理工具&#xff0c;它具有强大的功能和易用的界面&#xff0c;可以帮助用户快速清理Mac上的无用文件和垃圾&#xff0c;优化系统性能&#xff0c;提升电脑运行速度。 该软件的核心功能包括智能扫描与清理、应用程序管理、隐私保护和系统维护等。…

通用电气 IS220PTURH1BF 涡轮机输入/输出(输入/输出组件)

通用电气 IS220PTURH1BF 涡轮机输入/输出&#xff08;输入/输出组件&#xff09; 一个完整的根据工程的解决方案 通用电气具有丰厚经历的功用安全专家能够设计、履行和支撑您的整个安全体系——包括硬件、软件和使用工程&#xff0c;使您的系统泊车危险最小&#xff0c;一起满意…