实操准备
仅需2个免费工具,零编程基础可完成:
- Python 3.11:Windows用户直接执行命令安装:
winget install Python.Python.3.11,安装后输入python --version验证,显示Python 3.11.x即成功。
- SQLite Studio:用于查看档案数据库,直接下载地址:https://sqlitestudio.pl/,无需安装,解压即可用。
创建工作文件夹:在任意磁盘(如D盘)新建文件夹,命名为子公司档案管理,后续所有操作均在此文件夹内。
核心实操步骤
步骤1:创建档案数据库表结构
在工作文件夹内新建文本文件,命名为init_db.py,写入以下完整代码:
```python
import sqlite3
连接或创建数据库文件
conn = sqlite3.connect("sub_company_archive.db")
cursor = conn.cursor()
创建档案表,包含子公司核心信息+档案分类字段
cursor.execute('''
CREATE TABLE IF NOT EXISTS archives (
id INTEGER PRIMARY KEY AUTOINCREMENT,
sub_id TEXT NOT NULL,
sub_name TEXT NOT NULL,
credit_code TEXT NOT NULL,
establish_date TEXT NOT NULL,
file_type TEXT NOT NULL,
file_path TEXT NOT NULL,
archive_date TEXT NOT NULL,
remark TEXT
)
''')
conn.commit()
conn.close()
```
执行初始化命令:打开CMD,切换到工作文件夹,输入python init_db.py,完成后文件夹内会生成sub_company_archive.db数据库文件。
步骤2:编写自动化分类脚本

在工作文件夹内新建文本文件,命名为auto_archive.py,写入以下代码,仅需修改「配置项」部分即可使用:
```python
import sqlite3
import os
import shutil
--【配置项:请修改为你的实际信息】--
DB_PATH = "sub_company_archive.db" 数据库文件路径(无需修改)
SOURCE_FOLDER = "./待归档文件" 待分类文件存放的文件夹,需手动新建
TARGET_FOLDERS = { 按档案类型分类的目标文件夹,需手动新建
"营业执照": "./档案/营业执照",
"公司章程": "./档案/公司章程",
"年度财务报表": "./档案/年度财务报表",
"股东会决议": "./档案/股东会决议"
}
示例子公司信息(可批量新增)
SUB_INFO = {
"sub_id": "001",
"sub_name": "XX科技有限公司",
"credit_code": "91310115MA1GXXXXXX",
"establish_date": "2020-01-01"
}
--
创建所有目标文件夹(若不存在)
for folder in TARGET_FOLDERS.values():
os.makedirs(folder, exist_ok=True)
创建待归档文件夹
os.makedirs(SOURCE_FOLDER, exist_ok=True)
连接数据库
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
定义插入档案记录的函数
def insert_archive(file_path, file_type):
cursor.execute('''
INSERT INTO archives (
sub_id, sub_name, credit_code, establish_date,
file_type, file_path, archive_date, remark
) VALUES (?, ?, ?, ?, ?, ?, DATE('now'), '自动归档')
''', (
SUB_INFO["sub_id"], SUB_INFO["sub_name"], SUB_INFO["credit_code"],
SUB_INFO["establish_date"], file_type, file_path
))
处理待归档文件
for file_name in os.listdir(SOURCE_FOLDER):
file_path = os.path.join(SOURCE_FOLDER, file_name)
if os.path.isfile(file_path):
匹配文件类型(根据文件名关键词)
matched_type = None
for key in TARGET_FOLDERS.keys():
if key in file_name:
matched_type = key
break
若匹配到类型,执行归档
if matched_type:
处理重名文件(自动加后缀)
target_dir = TARGET_FOLDERS[matched_type]
base_name, ext = os.path.splitext(file_name)
counter = 1
final_name = file_name
while os.path.exists(os.path.join(target_dir, final_name)):
final_name = f"{base_name}({counter}){ext}"
counter += 1
移动文件到目标文件夹
target_path = os.path.join(target_dir, final_name)
shutil.move(file_path, target_path)
插入数据库记录
insert_archive(target_path, matched_type)
提交变更并关闭连接
conn.commit()
conn.close()
```
步骤3:执行自动化归档操作
- 把需要归档的文件(如营业执照扫描件、公司章程)放入工作文件夹下的
待归档文件文件夹。
- 打开CMD,切换到工作文件夹,输入命令:
python auto_archive.py。
- 等待执行完成:CMD无报错即成功,检查对应档案文件夹,文件已按类型分类,数据库也已同步记录。
异常处理与维护优化
异常处理
文件重名报错
脚本已自动处理重名,会在文件名后加(1)、(2)等后缀,无需手动修改。
数据库连接失败
检查工作文件夹是否有读写权限:Windows右键工作文件夹→「属性」→「安全」,选择当前用户,勾选「完全控制」权限,确认后重试。
后续维护
所有新的待归档文件直接放入待归档文件文件夹,每周运行一次python auto_archive.py即可。如需修改分类规则,直接在TARGET_FOLDERS中调整关键词和文件夹名称;如需新增子公司,直接修改SUB_INFO字段即可。
如需查看/修改档案记录,用SQLite Studio打开工作文件夹下的sub_company_archive.db,即可可视化管理所有档案。