资讯动态

GLM-OCR模型实战:清理与识别混乱C盘中的文档图片

发布时间:2026/9/20 17:48:22 来源:尧图企业网站定制
GLM-OCR模型实战清理与识别混乱C盘中的文档图片你是不是也经常遇到这种情况电脑C盘或者桌面上堆满了各种截图、扫描件、发票照片文件名全是“微信图片_20240101_123456.jpg”或者“IMG_0001.png”想找一张上个月的报销发票得一张张点开看费时又费力。我之前也深受其扰直到我开始用GLM-OCR模型来帮我“看懂”这些图片。今天我就来分享一个非常实用的脚本它能自动扫描你的文件夹识别图片里的关键信息比如发票号、文档标题、日期然后帮你把文件重命名得整整齐齐甚至分门别类放好。整个过程就像给你的数字桌面请了个智能管家。1. 场景与痛点为什么我们需要智能文档整理想象一下这几个日常场景报销季手机拍了一堆发票一股脑儿丢进电脑月底对着几十张名字雷同的图片头疼。资料收集网上看到有用的图表、文章片段习惯性截图保存时间一长根本记不住每张图是什么。工作交接同事发来一堆产品截图或扫描件文件名毫无信息量查找特定内容全靠运气。这些场景的共同痛点在于信息被锁在了图片里无法被系统快速检索和利用。手动整理效率极低尤其是当图片数量成百上千时。我们的目标就是利用GLM-OCR光学字符识别技术将这些“哑巴”图片变成“会说话”的、可被轻松管理的数字资产。这个方案的核心价值很简单省时、省力、杜绝混乱。让你从繁琐的文件管理工作中解放出来。2. 解决方案设计让脚本成为你的文件管家我们的智能整理脚本思路清晰分三步走扫描与读取让脚本自动遍历你指定的文件夹比如那个混乱的“下载”或“桌面”文件夹找出所有图片文件。识别与提取对每一张图片调用GLM-OCR模型识别其中的文字。然后像人一样从中找出最有价值的“关键信息”比如发票号码、合同编号、文档标题或者日期。执行与整理根据提取到的关键信息自动为图片文件生成一个清晰的新文件名例如“发票_20240315_No123456.jpg”或者将它移动到对应的分类文件夹中例如“发票”文件夹。整个流程是自动化的你只需要运行一次脚本泡杯咖啡的功夫混乱的文件夹就焕然一新了。2.1 为什么选择GLM-OCR市面上OCR工具很多选择GLM-OCR主要基于这几点考虑易用性它提供了清晰的API集成到Python脚本中非常简单几行代码就能调用。准确度对于常见的打印体、扫描件甚至一些清晰的手机拍照图片识别准确率相当不错足以满足日常文档整理需求。本地化优势对中文文档、发票等本土化格式的支持很好能准确识别中文混合数字、日期等格式。当然如果图片质量极差如严重模糊、倾斜、背景复杂任何OCR工具都可能出错。不过对于大多数电脑里存储的截图和扫描件GLM-OCR完全能胜任。3. 实战步骤一步步搭建你的整理工具下面我们开始动手。请确保你的电脑上已经安装了Python。3.1 环境准备与依赖安装首先打开你的命令行工具创建一个新的项目文件夹并安装必要的库。我们主要需要Pillow来处理图片以及requests来调用GLM-OCR的API这里假设你使用其API服务如果使用本地模型安装方式会略有不同。# 创建项目目录并进入 mkdir smart_doc_organizer cd smart_doc_organizer # 安装必要的Python包 pip install pillow requests3.2 核心脚本编写接下来创建一个名为organize_docs.py的Python文件。我们将把整个逻辑写进去。import os import re import shutil from datetime import datetime import requests from PIL import Image import json # 配置部分 # 1. 指定要整理的文件夹路径这里以整理桌面为例你可以改成任何路径 SOURCE_FOLDER rC:\Users\YourName\Desktop\待整理图片 # 请替换为你的实际路径 # 2. GLM-OCR API的配置你需要替换成自己的API密钥和端点 API_KEY YOUR_GLM_OCR_API_KEY # 请替换为你的实际API Key API_URL https://your-glm-ocr-api-endpoint.com/v1/ocr # 请替换为实际的API地址 # 3. 定义关键信息提取规则使用正则表达式 PATTERNS { invoice_number: r发票号码[:]?\s*([A-Za-z0-9]{8,20}), # 匹配发票号码 date: r(\d{4}[-年]\d{1,2}[-月]\d{1,2}日?), # 匹配日期如2024-03-15 document_title: r标题[:]?\s*(.{10,50}), # 匹配文档标题 } # 函数定义 def call_glm_ocr(image_path): 调用GLM-OCR API识别图片中的文字 try: with open(image_path, rb) as img_file: files {image: img_file} headers {Authorization: fBearer {API_KEY}} response requests.post(API_URL, filesfiles, headersheaders, timeout30) if response.status_code 200: result response.json() # 假设API返回的文本在result[text]字段中请根据实际API响应调整 full_text result.get(text, ) return full_text else: print(f 识别失败HTTP {response.status_code}: {image_path}) return except Exception as e: print(f 调用API时出错: {e}) return def extract_key_info(text): 从识别出的文本中提取关键信息 info {} for key, pattern in PATTERNS.items(): match re.search(pattern, text) if match: info[key] match.group(1).strip() # 如果没有匹配到特定模式则取前50个字符作为备选标题 if document_title not in info and text: info[document_title] text[:50].replace(\n, ).strip() return info def generate_new_filename(info, original_name): 根据提取的信息生成新的文件名 base_name, ext os.path.splitext(original_name) parts [] # 优先使用发票号 if invoice_number in info: parts.append(f发票_{info[invoice_number]}) # 其次使用文档标题截取前20字符避免过长 elif document_title in info: clean_title re.sub(r[\\/*?:|], _, info[document_title][:20]) # 移除非法文件名字符 parts.append(clean_title) else: parts.append(文档) # 添加日期信息 if date in info: parts.append(info[date].replace(年, -).replace(月, -).replace(日, )) else: # 如果没有识别到日期使用文件修改日期 parts.append(datetime.now().strftime(%Y%m%d)) # 添加原始文件名的一部分以防重名 parts.append(base_name[-4:]) new_name _.join(parts) ext return new_name def organize_folder(folder_path): 主函数整理指定文件夹 if not os.path.exists(folder_path): print(f错误文件夹不存在 - {folder_path}) return print(f开始整理文件夹: {folder_path}) supported_ext (.png, .jpg, .jpeg, .bmp, .tiff) for filename in os.listdir(folder_path): file_path os.path.join(folder_path, filename) # 只处理图片文件 if os.path.isfile(file_path) and filename.lower().endswith(supported_ext): print(f处理中: {filename}) # 步骤1: OCR识别 ocr_text call_glm_ocr(file_path) if not ocr_text: print(f 跳过未识别到文字: {filename}) continue # 步骤2: 提取关键信息 key_info extract_key_info(ocr_text) print(f 识别到信息: {key_info}) # 步骤3: 生成新文件名并重命名 new_filename generate_new_filename(key_info, filename) new_filepath os.path.join(folder_path, new_filename) # 避免覆盖已有文件 counter 1 while os.path.exists(new_filepath): name_part, ext_part os.path.splitext(new_filename) new_filepath os.path.join(folder_path, f{name_part}_{counter}{ext_part}) counter 1 os.rename(file_path, new_filepath) print(f 重命名为: {os.path.basename(new_filepath)}) # 可选步骤4: 按类型移动到子文件夹 # 例如如果识别到“发票”可以移动到“发票”子文件夹 # organize_by_category(new_filepath, key_info) print(整理完成) # 可选按类别归档函数 def organize_by_category(file_path, info): 根据识别信息将文件移动到分类文件夹 category None if invoice_number in info: category 发票 elif document_title in info: if any(word in info[document_title] for word in [合同, 协议]): category 合同 elif any(word in info[document_title] for word in [报告, 总结]): category 报告 if category: category_folder os.path.join(os.path.dirname(file_path), category) os.makedirs(category_folder, exist_okTrue) shutil.move(file_path, os.path.join(category_folder, os.path.basename(file_path))) print(f 已移动到 [{category}] 文件夹) # 运行主程序 if __name__ __main__: # 使用前请务必修改上面的 SOURCE_FOLDER, API_KEY 和 API_URL if API_KEY YOUR_GLM_OCR_API_KEY: print(请先在脚本中配置你的GLM-OCR API密钥和地址。) else: organize_folder(SOURCE_FOLDER)3.3 如何使用这个脚本获取API访问权限你需要注册并获取GLM-OCR服务的API密钥和接口地址替换脚本中API_KEY和API_URL的值。修改文件夹路径将SOURCE_FOLDER变量的值改成你电脑上那个混乱的、需要整理的文件夹的绝对路径。调整识别规则脚本里的PATTERNS字典定义了如何从文本中找关键信息。如果你的发票格式是“No: 123456”可以修改正则表达式来匹配它。这是让脚本更懂你的关键一步。运行脚本在命令行中进入脚本所在目录执行python organize_docs.py。查看结果脚本会逐张图片处理并在命令行中打印识别和重命名的过程。处理完成后你的文件夹里的图片文件名就会变得一目了然。4. 实际效果与扩展思路运行脚本后你会发现原来一堆Screenshot_2024-01-01-12-34-56.png的文件变成了发票_20240315_No123456.jpg、项目报告_2024Q1_abcd.png这样有意义的名称。找文件再也不用“开盲盒”了。这个基础脚本已经能解决大部分问题你还可以根据需求进一步扩展内容归档取消上面代码中organize_by_category函数调用的注释脚本在重命名后还能自动把发票、合同等文件移动到对应的子文件夹里。信息入库将识别出的文字如发票号、金额、日期保存到Excel或数据库里方便后续统计和查询。批量处理结合计划任务让脚本定期自动清理某个文件夹实现完全自动化。处理压缩包增加解压ZIP或RAR文件的功能直接整理压缩包内的图片。5. 总结用GLM-OCR模型来整理杂乱的文档图片是一个典型的技术赋能日常工作的例子。它没有什么高深的理论就是用一个简单的脚本把OCR能力和你具体的文件管理需求连接起来。整个过程下来最大的感受就是“自动化”带来的轻松。第一次配置稍微花点时间但一劳永逸。以后无论收到多少乱七八糟的图片运行一下脚本就搞定了。技术的目的就是为了解决问题提升效率这个小小的实践正好体现了这一点。如果你也受困于混乱的文件管理不妨试试这个思路。从最让你头疼的那个文件夹开始一步步调整脚本让它更适合你的文件格式和命名习惯。一旦跑通你会发现整理文档不再是一件烦心事。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价