网站首页/ 信息中心/ 档案百科/

档案评审整理实操:Python脚本自动化批量归档与清单生成

发布时间:2026年09月05日 06:30:10 浏览量:0

一、场景背景与需求分析

在档案整理与评审工作中,最核心的痛点在于面对海量的非结构化文件(如合同、扫描件、照片等),文件命名不规范、存储分散,且评审方通常要求提供一份包含“序号、文件名、归档日期、文件路径”的Excel目录清单。人工手动重命名、移动文件并录入Excel,不仅效率极低,且极易出错。

本指南将提供一套基于Python的零门槛自动化解决方案。该方案能够一键批量重命名文件按日期自动分类归档,并自动生成符合评审要求的Excel目录清单。你无需具备深厚的编程基础,只需按照本文步骤操作即可。

二、环境准备与依赖安装

在开始编写脚本之前,需要确保你的电脑上已经配置好了Python运行环境。Python是跨平台的,Windows、Mac和Linux均适用。

1. 安装Python环境

如果尚未安装,请访问Python官网下载安装包。

下载地址:https://www.python.org/downloads/

下载对应操作系统的安装包(推荐Python 3.9及以上版本)。安装时,务必勾选“Add Python to PATH”选项,这一步至关重要,否则后续命令无法在终端直接运行。安装完成后,在终端(Win键+R输入cmd)输入 python --version,显示版本号即表示安装成功。

2. 安装必要的第三方库

我们需要处理Excel文件和系统路径,因此需要安装 pandasopenpyxl 这两个库。打开终端(命令行),执行以下命令:

```bash pip install pandas openpyxl ```

如果下载速度较慢,可以使用国内镜像源:

```bash pip install pandas openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple ```

三、目录结构规划

为了保证脚本运行无误,请先在D盘根目录下(或任意位置)创建一个名为 archive_project 的文件夹,并在其中建立以下结构:

四、核心代码实现与逻辑解析

我们将编写一个完整的Python脚本。该脚本的主要逻辑包含三个部分:

  1. 文件遍历与解析:读取源文件夹下的所有文件。
  2. 重命名与归档:根据当前时间戳和文件类型,生成规范的文件名,并移动到目标文件夹。
  3. 生成清单:将处理结果记录到内存中,最后统一导出为Excel。

1. 脚本配置与导入模块

我们需要导入操作系统相关的库和数据处理库。请创建 organize.py 文件并输入以下代码:

```python import os import shutil import pandas as pd from datetime import datetime 配置区域 源文件夹路径:存放待整理文件的路径 SOURCE_DIR = r'D:\archive_project\source_folder' 目标文件夹路径:整理后文件的存放路径 TARGET_DIR = r'D:\archive_project\target_folder' Excel清单输出路径 OUTPUT_EXCEL = r'D:\archive_project\归档目录清单.xlsx' 档案前缀,用于评审时的批次标识 ARCHIVE_PREFIX = "2023年度评审_" ```

注意:路径前的 r 表示原始字符串,用于处理Windows路径中的反斜杠,防止转义错误。请务必将上述路径修改为你电脑上实际创建的路径。

2. 文件解析与重命名逻辑

接下来是核心处理函数。我们将定义一个函数来处理单个文件。为了满足评审要求,我们将文件名格式化为:前缀_日期_序号_原扩展名

```python def process_files(): 检查目标文件夹是否存在,不存在则创建 if not os.path.exists(TARGET_DIR): os.makedirs(TARGET_DIR) file_records = [] 获取当前日期字符串,例如 20231027 current_date_str = datetime.now().strftime("%Y%m%d") 遍历源文件夹 files = os.listdir(SOURCE_DIR) 按文件名排序,确保序号有序 files.sort() for index, filename in enumerate(files): source_path = os.path.join(SOURCE_DIR, filename) 跳过文件夹,只处理文件 if not os.path.isfile(source_path): continue 获取文件扩展名 file_ext = os.path.splitext(filename)[1] 构建新文件名:前缀 + 日期 + 3位序号 + 扩展名 例如:2023年度评审_20231027_001.pdf new_filename = f"{ARCHIVE_PREFIX}{current_date_str}_{str(index+1).zfill(3)}{file_ext}" target_path = os.path.join(TARGET_DIR, new_filename) try: 移动文件 shutil.move(source_path, target_path) 记录归档信息用于生成Excel file_records.append({ "序号": index + 1, "原文件名": filename, "归档文件名": new_filename, "归档日期": current_date_str, "文件类型": file_ext[1:].upper(), 去掉点并转大写 "存储路径": target_path }) print(f"成功处理: {filename} -> {new_filename}") except Exception as e: print(f"处理文件 {filename} 失败: {e}") return file_records ```

代码细节解析:

3. 自动生成档案目录清单

档案评审整理实操:Python脚本自动化批量归档与清单生成

整理完文件后,评审方最需要的就是Excel清单。我们使用 pandas 库将上一步收集的 file_records 列表导出。

```python def generate_excel_report(data): if not data: print("没有文件被处理,跳过生成Excel。") return 将字典列表转换为DataFrame df = pd.DataFrame(data) 定义Excel列的顺序,符合阅读习惯 columns_order = ["序号", "归档日期", "归档文件名", "文件类型", "原文件名", "存储路径"] df = df[columns_order] try: 导出到Excel index=False 表示不写入行索引(0,1,2...) df.to_excel(OUTPUT_EXCEL, index=False, engine='openpyxl') print(f"\n归档清单已生成: {OUTPUT_EXCEL}") except Exception as e: print(f"生成Excel失败: {e}") ```

五、完整可执行代码汇总

将上述代码片段合并,并添加主程序入口。以下是完整的 organize.py 内容,你可以直接复制覆盖:

```python import os import shutil import pandas as pd from datetime import datetime 配置区域 请将以下路径修改为你电脑上的实际路径 SOURCE_DIR = r'D:\archive_project\source_folder' TARGET_DIR = r'D:\archive_project\target_folder' OUTPUT_EXCEL = r'D:\archive_project\归档目录清单.xlsx' ARCHIVE_PREFIX = "2023年度评审_" def process_files(): if not os.path.exists(SOURCE_DIR): print(f"源文件夹不存在: {SOURCE_DIR}") return [] if not os.path.exists(TARGET_DIR): os.makedirs(TARGET_DIR) file_records = [] current_date_str = datetime.now().strftime("%Y%m%d") files = os.listdir(SOURCE_DIR) files.sort() print(f"开始整理,共发现 {len(files)} 个文件...") for index, filename in enumerate(files): source_path = os.path.join(SOURCE_DIR, filename) if not os.path.isfile(source_path): continue file_ext = os.path.splitext(filename)[1] new_filename = f"{ARCHIVE_PREFIX}{current_date_str}_{str(index+1).zfill(3)}{file_ext}" target_path = os.path.join(TARGET_DIR, new_filename) try: shutil.move(source_path, target_path) file_records.append({ "序号": index + 1, "原文件名": filename, "归档文件名": new_filename, "归档日期": current_date_str, "文件类型": file_ext[1:].upper(), "存储路径": target_path }) print(f"[{index+1}/{len(files)}] 处理完成: {new_filename}") except Exception as e: print(f"错误: 无法移动 {filename}, 原因: {e}") return file_records def generate_excel_report(data): if not data: print("没有数据可生成清单。") return df = pd.DataFrame(data) columns_order = ["序号", "归档日期", "归档文件名", "文件类型", "原文件名", "存储路径"] df = df[columns_order] try: df.to_excel(OUTPUT_EXCEL, index=False, engine='openpyxl') print(f"\n成功!Excel清单已保存至: {OUTPUT_EXCEL}") except Exception as e: print(f"生成Excel失败: {e}") if __name__ == "__main__": 执行整理 records = process_files() 生成清单 generate_excel_report(records) ```

六、运行验证与结果检查

1. 运行脚本

打开终端(CMD或PowerShell),切换到你的脚本所在目录,然后运行脚本:

```bash cd D:\archive_project python organize.py ```

观察终端输出,你应该能看到类似以下的进度信息:

```text 开始整理,共发现 5 个文件... [1/5] 处理完成: 2023年度评审_20231027_001.pdf [2/5] 处理完成: 2023年度评审_20231027_002.jpg ... 成功!Excel清单已保存至: D:\archive_project\归档目录清单.xlsx ```

2. 结果检查

七、常见报错处理与扩展

在实操过程中,可能会遇到以下两个常见问题,请参考解决方案:

1. 文件被占用错误

报错信息:PermissionError: [WinError 32] The process cannot access the file

原因:源文件正在被其他程序打开(例如Word或图片查看器未关闭)。

解决:关闭所有预览该文件的程序,重新运行脚本。

2. 编码错误(中文乱码)

如果你的原文件名包含特殊字符且报错,可以在代码第1行添加编码声明(Python3通常默认UTF-8,但某些Windows环境可能需要):

```python -- coding: utf-8 -- ```

3. 进阶扩展:按文件类型分类归档

如果评审要求将图片和文档分开存放,可以修改 process_files 函数中的目标路径逻辑:

```python 示例逻辑片段 if file_ext in ['.jpg', '.png', '.jpeg']: category_folder = os.path.join(TARGET_DIR, "图片资料") else: category_folder = os.path.join(TARGET_DIR, "文档资料") if not os.path.exists(category_folder): os.makedirs(category_folder) 修改移动路径 target_path = os.path.join(category_folder, new_filename) ```

通过以上步骤,你已经完成了一套标准化的档案整理评审自动化流程。这不仅解决了手动整理的繁琐,更保证了归档数据的准确性和规范性,完全满足技术评审的硬性指标。

商标档案管理系统:别再让商标资产“睡大觉”了!
商标档案管理系统:别再让商标资产“睡大觉”了!
你有没有发现,很多公司花大价钱注册了一堆商标,结果呢?这些商标就像被扔进了仓库角落的旧文件,没人记得、没人维护,甚至快过期了都无人知晓。这事儿吧,说白了就是管理上的一笔“糊涂账”。
2026年09月05日 06:30:10
土木工程建筑业企业档案培训:实用干货全揭秘
土木工程建筑业企业档案培训:实用干货全揭秘
哎,各位土木届的搬砖人、包工头、资料员们,终于挖到个能救咱们半条命的宝贝了——今天要唠的就是跟咱们每天离不开的“工地隐形生命线”有关的【土木工程建筑业企业档案培训】!我可不是啥自媒体瞎忽悠,我是真踩过...
2026年09月05日 06:30:10
微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818