Python批量實(shí)現(xiàn)word中查找關(guān)鍵字的示例代碼
一、背景
在日常辦公和文檔處理中,我們常常需要在大量的Word文檔中查找特定的關(guān)鍵字,然后進(jìn)行接下來的操作,比如關(guān)鍵字替換等。手動逐個打開并搜索文檔顯然是費(fèi)時費(fèi)力的。因此,利用Python編寫一個批量實(shí)現(xiàn)Word中查找關(guān)鍵字的程序可以大大提高效率和減少工作負(fù)擔(dān)。
二、開發(fā)環(huán)境
- Python編程語言:Python是一種簡潔、易讀易寫的高級編程語言,具有強(qiáng)大的數(shù)據(jù)處理和文本處理能力。本地使用Python3.6版本。
- Python-docx庫:Python-docx是一個用于操作Microsoft Word文檔(.docx文件)的第三方庫,可以讀取和修改Word文檔內(nèi)容。
- 文本編輯器或集成開發(fā)環(huán)境(IDE):選擇一個適合你的編程習(xí)慣和需求的編輯器或IDE,例如Visual Studio Code、PyCharm等。本地使用PyCharm2022。
在搭建好開發(fā)環(huán)境后,我們將使用Python編寫程序來實(shí)現(xiàn)以下步驟:
- 安裝所需庫:通過命令行或Anaconda Prompt安裝Python-docx庫。
- 導(dǎo)入必要的庫:在Python代碼中引入所需的庫,例如import docx。
- 獲取Word文檔列表:使用Python的文件操作函數(shù)遍歷指定文件夾中的所有Word文檔,將它們的路徑存儲在一個列表中。
- 打開并讀取Word文檔:循環(huán)遍歷Word文檔列表,逐個打開文檔并讀取其內(nèi)容。
- 查找關(guān)鍵字:使用Python字符串操作函數(shù)在讀取的文檔內(nèi)容中查找指定的關(guān)鍵字。
- 輸出結(jié)果或執(zhí)行其他的操作:如果關(guān)鍵字在word中,則將文件移出到新建的文件夾中。
三、實(shí)現(xiàn)代碼
#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author:Awen
@file:task_test.py
@time:2023/07/04
@function:Python實(shí)現(xiàn)在word中批量查找關(guān)鍵字,如果關(guān)鍵字在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\正樣本終版\\'
# 搜索的關(guān)鍵字
keyword = '求職意向'
for filename in os.listdir(source_file_path):
try:
# 創(chuàng)建新文件夾,用于找到相應(yīng)文件之后將其移入到該文件夾中
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字樣,則是任務(wù)目標(biāo)文件
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}' 時出現(xiàn)錯誤: {str(e)}")
pass到此這篇關(guān)于Python批量實(shí)現(xiàn)word中查找關(guān)鍵字的示例代碼的文章就介紹到這了,更多相關(guān)Python word查找關(guān)鍵字內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
教你使用Pandas直接核算Excel中的快遞費(fèi)用
文中仔細(xì)說明了怎么根據(jù)賬單核算運(yùn)費(fèi).首先要確定運(yùn)費(fèi)規(guī)則,然后根據(jù)運(yùn)費(fèi)規(guī)則編寫代碼,生成核算列(快遞費(fèi) = 省份*重量),最后輸入賬單,進(jìn)行核算.將腳本件生成EXE文件,就可以使用啦,需要的朋友可以參考下2021-05-05
pycharm中選中一個單詞替換所有重復(fù)單詞的實(shí)現(xiàn)方法
這篇文章主要介紹了pycharm中選中一個單詞替換所有重復(fù)單詞的實(shí)現(xiàn)方法,類似于sublime 里的ctrl+D功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧2020-11-11
關(guān)于Python中幾個有趣的函數(shù)和推導(dǎo)式解析
這篇文章主要介紹了關(guān)于Python中幾個有趣的函數(shù)和推導(dǎo)式解析,推導(dǎo)式comprehensions,又稱解析式,是Python的一種獨(dú)有特性,推導(dǎo)式是可以從一個數(shù)據(jù)序列構(gòu)建另一個新的數(shù)據(jù)序列的結(jié)構(gòu)體,需要的朋友可以參考下2023-08-08
基于python實(shí)現(xiàn)語音錄入識別代碼實(shí)例
這篇文章主要介紹了如何通過python實(shí)現(xiàn)語音錄入識別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-01-01
利用python模擬實(shí)現(xiàn)POST請求提交圖片的方法
最近在利用python做接口測試,其中有個上傳圖片的接口,在網(wǎng)上各種搜索,各種嘗試。下面這篇文章主要給大家介紹了關(guān)于利用python模擬實(shí)現(xiàn)POST請求提交圖片的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07
python 實(shí)現(xiàn)turtle畫圖并導(dǎo)出圖片格式的文件
今天小編就為大家分享一篇python 實(shí)現(xiàn)turtle畫圖并導(dǎo)出圖片格式的文件,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12

