赞
踩
在日常办公和文档处理中,我们常常需要在大量的Word文档中查找特定的关键字,然后进行接下来的操作,比如关键字替换等。手动逐个打开并搜索文档显然是费时费力的。因此,利用Python编写一个批量实现Word中查找关键字的程序可以大大提高效率和减少工作负担。
在搭建好开发环境后,我们将使用Python编写程序来实现以下步骤:
import docx
。- #!/usr/bin/python
- # -*- coding: UTF-8 -*-
- """
- @author:Awen
- @file:task_test.py
- @time:2023/07/04
- @function:Python实现在word中批量查找关键字,如果关键字在word中,则将文件移出到新建的文件夹中
- """
- import os
- import shutil
- from docx import Document
- from docx.opc.exceptions import PackageNotFoundError
-
-
- def search_keyword_in_word(keyword, file_path):
- # 若报错,则跳过,有的文件无法读取成功
- try:
- document = Document(file_path)
- found_paragraphs = []
-
- for paragraph in document.paragraphs:
- if keyword in paragraph.text:
- found_paragraphs.append(paragraph.text)
-
- return found_paragraphs
- except PackageNotFoundError:
- print(f"文件 '{file_path}' 未找到。")
- pass
-
-
- # 原文件夹路径
- source_file_path = 'D:\Pycharmproject2023\code_test_project\shan_test\正样本终版\\'
- # 搜索的关键字
- keyword = '求职意向'
-
- for filename in os.listdir(source_file_path):
- try:
- # 创建新文件夹,用于找到相应文件之后将其移入到该文件夹中
- new_directory = os.path.join(source_file_path, "data123")
- os.makedirs(new_directory, exist_ok=True)
- if filename.endswith('.docx'):
- print(filename)
- result = search_keyword_in_word(keyword, source_file_path+filename)
- for paragraph in result:
- print(paragraph)
- # 如果求职意向中包含java字样,则是任务目标文件
- if "java" in paragraph.lower():
- new_file_path = os.path.join(new_directory, filename)
- shutil.move(source_file_path+filename, new_file_path)
- print(f"已移动文件: {filename}")
- # # 删除原文件夹中的文件
- # os.remove(source_file_path+filename)
- # print(f"已删除文件: {filename}")
- except Exception as e:
- print(f"处理文件 '{filename}' 时出现错误: {str(e)}")
- pass
-
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。