Python正则文档分类异常:无匹配文件误存keyword2文件夹
文档分类逻辑错误修复
问题场景
需要根据文档文本中的关键词将文档分类到对应文件夹:
- 含
keyword1→ 存入keyword1文件夹 - 含
keyword2→ 存入keyword2文件夹 - 两者均不含 → 存入
unknown文件夹
当前实现中,前两类分类正常,但无匹配关键词的文档被错误归入keyword2文件夹。
错误原因
原代码仅对keyword1进行匹配判断,当keyword1不匹配时(not match),直接默认文档包含keyword2,完全跳过了keyword2的匹配检查。同时,elif not match会覆盖所有不匹配keyword1的情况,导致else分支(对应unknown分类)永远无法执行。另外原代码未定义keyword2变量却直接使用,存在语法隐患。
修复后的代码
import re import os import shutil # 定义关键词 keyword1 = "keyword1" keyword2 = "keyword2" for k, text_content in text_dict.items(): file_name1 = k.split('.')[0] # 分别检查两个关键词的匹配情况 match1 = re.search(r"keyword1", text_content, flags=re.DOTALL|re.IGNORECASE) match2 = re.search(r"keyword2", text_content, flags=re.DOTALL|re.IGNORECASE) if match1: print(f"The keyword '{keyword1}' is present in the text.--->", k) os.makedirs('keyword1', exist_ok=True) shutil.copytree(os.path.join('imgs', file_name1), os.path.join('keyword1', file_name1), dirs_exist_ok=True) elif match2: print(f"The keyword '{keyword2}' is present in the text.--->", k) os.makedirs('keyword2', exist_ok=True) shutil.copytree(os.path.join('imgs', file_name1), os.path.join('keyword2', file_name1), dirs_exist_ok=True) else: print(f"The keywords '{keyword1}' and {keyword2} are not present in the text.--->", k) os.makedirs('unknown', exist_ok=True) shutil.copytree(os.path.join('imgs', file_name1), os.path.join('unknown', file_name1), dirs_exist_ok=True)
关键调整说明
- 新增
keyword2变量定义,修复未声明变量的问题 - 分别对两个关键词执行匹配检查,用
match1和match2存储各自的匹配结果 - 重构分支逻辑:先判断
keyword1匹配,再判断keyword2匹配,最后进入unknown分支,确保所有分类场景都被正确覆盖
内容的提问来源于stack exchange,提问作者user21785694
相关产品推荐
相关产品推荐

