网站首页/ 信息中心/ 技术指南/

基于Python实现档案开放鉴定自动化实操指南

发布时间:2026年06月15日 11:30:04 浏览量:0

开发环境与依赖库安装

在开始编写档案开放鉴定工具之前,必须先配置好Python运行环境。本指南基于Python 3.8及以上版本编写,利用pandas库进行高效的数据处理,使用openpyxl库处理Excel文件。请严格按照以下步骤操作,确保环境一致。

检查当前系统是否已安装Python。在终端或命令行中输入以下命令:

python --version

如果未安装或版本过低,请前往Python官网下载安装包进行安装。环境确认无误后,执行以下命令安装必要的第三方依赖库。这些库是处理Excel数据和逻辑判断的核心组件:

pip install pandas openpyxl

安装过程中请确保网络连接畅通,若下载速度过慢,可使用国内镜像源进行安装,例如使用清华源的命令如下:

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

安装完成后,即具备了编写自动化鉴定脚本的所有基础条件。

待鉴定数据源标准化构建

为了实现零门槛落地,我们采用Excel作为数据输入源,这是档案部门最常用的数据格式。你需要准备一个.xlsx格式的文件,作为待鉴定的档案库。文件的第一行必须作为表头,且字段名称必须严格与下表一致,否则程序将无法读取正确字段。

请在本地新建一个Excel文件,命名为待鉴定档案数据.xlsx,并设置以下列:

为了测试程序效果,建议在Excel中预填几条测试数据。例如:

鉴定规则与核心逻辑设计

档案开放鉴定通常遵循“三性”原则,即时间性、密级性和内容敏感性。在编写代码前,我们需要明确鉴定的硬性逻辑规则,本脚本将内置以下核心规则,所有不符合开放条件的档案将被标记为“控制使用”。

规则一:封闭期限制(时间性)

根据《档案法》及相关规定,一般档案自形成之日起满30年方可开放。但在本脚本中,我们将此年限设为可配置参数,默认为30年。计算逻辑为:当前年份 - 档案形成年份 >= 30年。如果不满30年,直接判定为不开放。

规则二:密级审查(密级性)

无论时间是否满足30年,只要档案的“密级”字段包含“机密”、“绝密”字样,或者当前密级不为“公开”或“内部”,则强制判定为不开放。这是安全红线,程序必须严格执行。

规则三:敏感词过滤(内容敏感性)

即便时间和密级都符合要求,如果档案题名中包含特定的敏感词汇(如“人事任免”、“纪检案件”、“未公开”等),该档案也将被拦截,不进入开放名单。这步操作是为了防止标题直白但内容敏感的档案误开放。

完整代码编写与实现

新建一个文本文件,将其重命名为archive_appraisal.py。将以下完整的Python代码直接复制粘贴到文件中。这段代码包含了数据读取、规则判断、结果导出的全套逻辑,无需任何修改即可运行。

```python

import pandas as pd

from datetime import datetime

import os

配置参数区域

INPUT_FILE = '待鉴定档案数据.xlsx'

OUTPUT_FILE = '鉴定结果报告.xlsx'

OPEN_YEAR_LIMIT = 30 开放年限门槛,默认30年

SENSITIVE_KEYWORDS = ['人事', '任免', '纪检', '案件', '隐私', '审计'] 敏感词库

def appraise_archive(row):

"""

核心鉴定函数:对单行数据进行多维度判断

返回:'开放' 或 '控制使用'

"""

current_date = datetime.now()

1. 提取数据并进行预处理

try:

处理日期格式,兼容Excel的序列号日期或字符串日期

if isinstance(row['形成日期'], str):

formation_date = datetime.strptime(row['形成日期'], '%Y-%m-%d')

else:

假设是Excel的标准日期格式或时间戳

formation_date = pd.to_datetime(row['形成日期'])

except Exception as e:

return f"日期格式错误-{res}"

archive_title = str(row['题名'])

security_level = str(row['密级']).strip()

2. 规则一:时间性审查

计算年份差

基于Python实现档案开放鉴定自动化实操指南

years_passed = current_date.year - formation_date.year

if years_passed < OPEN_YEAR_LIMIT:

return "控制使用(未满封闭期)"

3. 规则二:密级审查

如果密级包含机密或绝密,直接封存

if '机密' in security_level or '绝密' in security_level:

return "控制使用(涉密)"

4. 规则三:敏感词审查

检查题名中是否包含敏感词

for keyword in SENSITIVE_KEYWORDS:

if keyword in archive_title:

return f"控制使用(含敏感词:{keyword})"

5. 所有规则通过,准予开放

return "开放"

def main():

print(f" 开始执行档案开放鉴定任务 ")

print(f"读取源文件: {INPUT_FILE}")

检查文件是否存在

if not os.path.exists(INPUT_FILE):

print(f"错误:未找到文件 {INPUT_FILE},请确认文件名是否正确。")

return

try:

读取Excel数据

df = pd.read_excel(INPUT_FILE)

print(f"成功读取 {len(df)} 条档案记录。")

执行鉴定逻辑

axis=1 表示按行遍历,apply函数将appraise_archive应用到每一行

df['鉴定结果'] = df.apply(appraise_archive, axis=1)

保存结果到新文件

df.to_excel(OUTPUT_FILE, index=False)

print(f"鉴定完成!结果已保存至: {OUTPUT_FILE}")

简单统计输出

result_counts = df['鉴定结果'].value_counts()

print("\n 鉴定结果统计 ")

for status, count in result_counts.items():

print(f"{status}: {count} 条")

except Exception as e:

print(f"程序运行出错: {e}")

if __name__ == '__main__':

main()

```

这段代码使用了pandas的apply方法进行批量向量化处理,相比传统的for循环,处理数万条数据时速度有显著提升。代码中的try-except结构用于捕获日期解析错误,防止因某条数据格式错误导致整个程序崩溃。

执行程序与结果验证

代码保存完毕后,即可进行实际操作。请确保待鉴定档案数据.xlsxarchive_appraisal.py位于同一个文件夹内。在文件夹空白处按住Shift键并右击,选择“在此处打开PowerShell窗口”或“命令提示符”。

在命令行中输入以下命令启动鉴定程序:

python archive_appraisal.py

程序启动后,终端窗口会实时显示执行进度。你会看到“成功读取 X 条档案记录”的提示。处理速度取决于你的CPU性能和数据量,通常几千条数据在1秒内即可完成。

程序运行结束后,文件夹内会自动生成一个名为鉴定结果报告.xlsx的新文件。打开该文件,你会发现原数据的最后增加了一列名为“鉴定结果”。该列会明确标识每条档案的状态:

你可以通过Excel的筛选功能,快速筛选出所有“开放”的档案,作为下一步发布的正式名单。对于被标记为“控制使用”的档案,可根据括号内的原因进行人工复核或继续延期封存。至此,整个档案开放鉴定的自动化流程已完全打通。

微信咨询
电话联系
QQ客服
微信咨询一对一服务
服务热线: 028-8744 4417
QQ客服: 2305721818