当前位置:   article > 正文

Python批量实现word中查找关键字_python 批量查找word属性

python 批量查找word属性

 一、背景

        在日常办公和文档处理中,我们常常需要在大量的Word文档中查找特定的关键字,然后进行接下来的操作,比如关键字替换等。手动逐个打开并搜索文档显然是费时费力的。因此,利用Python编写一个批量实现Word中查找关键字的程序可以大大提高效率和减少工作负担。

二、开发环境

  1. Python编程语言:Python是一种简洁、易读易写的高级编程语言,具有强大的数据处理和文本处理能力。本地使用Python3.6版本。
  2. Python-docx库:Python-docx是一个用于操作Microsoft Word文档(.docx文件)的第三方库,可以读取和修改Word文档内容。
  3. 文本编辑器或集成开发环境(IDE):选择一个适合你的编程习惯和需求的编辑器或IDE,例如Visual Studio Code、PyCharm等。本地使用PyCharm2022。

在搭建好开发环境后,我们将使用Python编写程序来实现以下步骤:

  1. 安装所需库:通过命令行或Anaconda Prompt安装Python-docx库。
  2. 导入必要的库:在Python代码中引入所需的库,例如import docx
  3. 获取Word文档列表:使用Python的文件操作函数遍历指定文件夹中的所有Word文档,将它们的路径存储在一个列表中。
  4. 打开并读取Word文档:循环遍历Word文档列表,逐个打开文档并读取其内容。
  5. 查找关键字:使用Python字符串操作函数在读取的文档内容中查找指定的关键字。
  6. 输出结果或执行其他的操作:如果关键字在word中,则将文件移出到新建的文件夹中。

三、实现代码

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. """
  4. @author:Awen
  5. @file:task_test.py
  6. @time:2023/07/04
  7. @function:Python实现在word中批量查找关键字,如果关键字在word中,则将文件移出到新建的文件夹中
  8. """
  9. import os
  10. import shutil
  11. from docx import Document
  12. from docx.opc.exceptions import PackageNotFoundError
  13. def search_keyword_in_word(keyword, file_path):
  14. # 若报错,则跳过,有的文件无法读取成功
  15. try:
  16. document = Document(file_path)
  17. found_paragraphs = []
  18. for paragraph in document.paragraphs:
  19. if keyword in paragraph.text:
  20. found_paragraphs.append(paragraph.text)
  21. return found_paragraphs
  22. except PackageNotFoundError:
  23. print(f"文件 '{file_path}' 未找到。")
  24. pass
  25. # 原文件夹路径
  26. source_file_path = 'D:\Pycharmproject2023\code_test_project\shan_test\正样本终版\\'
  27. # 搜索的关键字
  28. keyword = '求职意向'
  29. for filename in os.listdir(source_file_path):
  30. try:
  31. # 创建新文件夹,用于找到相应文件之后将其移入到该文件夹中
  32. new_directory = os.path.join(source_file_path, "data123")
  33. os.makedirs(new_directory, exist_ok=True)
  34. if filename.endswith('.docx'):
  35. print(filename)
  36. result = search_keyword_in_word(keyword, source_file_path+filename)
  37. for paragraph in result:
  38. print(paragraph)
  39. # 如果求职意向中包含java字样,则是任务目标文件
  40. if "java" in paragraph.lower():
  41. new_file_path = os.path.join(new_directory, filename)
  42. shutil.move(source_file_path+filename, new_file_path)
  43. print(f"已移动文件: {filename}")
  44. # # 删除原文件夹中的文件
  45. # os.remove(source_file_path+filename)
  46. # print(f"已删除文件: {filename}")
  47. except Exception as e:
  48. print(f"处理文件 '{filename}' 时出现错误: {str(e)}")
  49. pass
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/319496
推荐阅读
相关标签
  

闽ICP备14008679号