Python批量读取docx文件提取指定关键词并生成DataFrame或表格
批量读取Word文档并搜索关键词生成结构化表格/DataFrame
所需依赖
先安装必要的Python库:
pip install python-docx pandas
实现步骤与代码
下面是完整的实现代码,能遍历指定文件夹下的所有.docx文件,搜索目标关键词并生成结构化的DataFrame(或导出为表格文件):
import os from docx import Document import pandas as pd # 配置参数 folder_path = "./docx_files" # 替换为你的Word文档所在文件夹路径 target_keyword = "laptop" case_sensitive = False # 设置为True则区分大小写 # 初始化结果存储列表 results = [] # 遍历文件夹中的所有docx文件 for filename in os.listdir(folder_path): if filename.endswith(".docx"): file_path = os.path.join(folder_path, filename) try: # 读取Word文档内容 doc = Document(file_path) full_text = "\n".join([para.text for para in doc.paragraphs]) # 判断是否包含关键词 if case_sensitive: has_keyword = target_keyword in full_text else: has_keyword = target_keyword.lower() in full_text.lower() # 如果包含关键词,添加到结果列表 if has_keyword: results.append({"FileName": filename, "Keyword": f'"{target_keyword}"'}) except Exception as e: print(f"处理文件 {filename} 时出错: {str(e)}") # 转换为DataFrame result_df = pd.DataFrame(results) # 打印结果 print(result_df) # 可选:导出为Excel表格 # result_df.to_excel("keyword_search_results.xlsx", index=False)
关键说明
- 大小写处理:通过
case_sensitive参数控制是否区分关键词的大小写,默认不区分,适配类似"Laptop"、"LAPTOP"的情况。 - 错误处理:添加了异常捕获,避免单个文件读取失败导致整个程序终止。
- 扩展功能:如果需要遍历子文件夹中的文档,可以将
os.listdir替换为os.walk,遍历所有层级的文件。 - 结果导出:取消代码中最后一行的注释,即可将结果导出为Excel文件,方便后续分析。
内容的提问来源于stack exchange,提问作者Alice jinx
相关产品推荐
相关产品推荐

