1. 安装Python3.9:访问官网下载地址 https://www.python.org/ftp/python/3.9.13/python-3.9.13-amd64.exe,执行安装程序时必须勾选Add Python to PATH(否则命令行无法识别Python)。
2. 安装所需依赖库:打开命令提示符(Win+R输入cmd回车),执行以下命令:
```pip install pandas openpyxl chardet```3. 准备待处理文件:将档案元数据保存为Excel文件(命名为metadata.xlsx),扫描件统一存放在scan_files文件夹中,路径示例:D:\档案数字化\scan_files。
在命令提示符中进入文件存放目录(如输入cd D:\档案数字化),执行以下代码:
打开重复编号错误清单.xlsx,所有重复的编号条目会被列出,对应原始档案核对后删除冗余项。
执行以下代码:
```python -c "import pandas as pd; df=pd.read_excel('metadata.xlsx'); df['页号']=pd.to_numeric(df['页号'], errors='coerce').dropna(); all_pages=set(range(1, df['页号'].max()+1)); exist_pages=set(df['页号']); missing=all_pages - exist_pages; pd.DataFrame({'缺失页号': list(missing)}).to_excel('缺页编号错误清单.xlsx', index=False)"```打开缺页编号错误清单.xlsx,核对对应档案的扫描件是否完整,补充或删除缺失页条目。
执行以下代码:
```python -c "import os; scan_count=len([f for f in os.listdir('scan_files') if f.lower().endswith(('.jpg','.png','.pdf'))]); df=pd.read_excel('metadata.xlsx'); print(f'扫描件数量:{scan_count},元数据条目数:{len(df)}')"```
若两个数值不相等,删除多余扫描件或核对原始档案删除冗余元数据条目。
执行以下代码:
```python -c "import pandas as pd; df=pd.read_excel('metadata.xlsx'); missing_fields=df.columns[df.isna().any()].tolist(); pd.DataFrame({'缺失必填字段': missing_fields}).to_excel('缺失字段清单.xlsx', index=False)"```打开缺失字段清单.xlsx,补充档案编号、姓名、日期等必填字段的空白内容。
打开重复编号错误清单.xlsx,仅保留对应原始档案的编号条目,删除其他重复条目,覆盖原metadata.xlsx,执行验证命令确认修复:
```python -c "import pandas as pd; df=pd.read_excel('metadata.xlsx'); if df['档案编号'].duplicated().any(): print('仍有重复错误'); else: print('编号重复错误已修复')"```打开缺页编号错误清单.xlsx,在scan_files文件夹补充对应缺失页的扫描件,或在元数据中删除缺失页条目,执行验证命令:
```python -c "import pandas as pd; df=pd.read_excel('metadata.xlsx'); df['页号']=pd.to_numeric(df['页号'], errors='coerce').dropna(); all_pages=set(range(1, df['页号'].max()+1)); exist_pages=set(df['页号']); print('缺页错误状态:' + ('已修复' if all_pages == exist_pages else '仍有缺失'))"```打开缺失字段清单.xlsx,对应条目补充完整信息,日期格式统一调整为YYYY-MM-DD,执行验证命令:
```python -c "import pandas as pd; df=pd.read_excel('metadata.xlsx'); print('字段缺失状态:' + ('已修复' if not df.isna().any().any() else '仍有缺失'))"```执行命令检测文件编码:
```python -c "import chardet; with open('metadata.xlsx', 'rb') as f: result=chardet.detect(f.read(100000)); print(f'文件编码:{result[\"encoding\"]}')"```若检测编码为gbk/gb2312,将原文件另存为CSV格式,用记事本打开后点击「文件→另存为」,编码选择UTF-8,再重新导入Excel保存为xlsx格式,替换原metadata.xlsx。
所有操作无需专业技术背景,所有代码和命令均可直接复制执行,修复完成后无需复杂工具即可交付使用。