分享自己练手的代码,根据关键字查找word文档包含。
分享自己练手的代码,根据关键字查找word文档包含,代码如下,欢迎拍砖。import os
from docx import Document
from win32com.client import Dispatch
# 声明一个文件列表
listFiles = []
# [函数]递归遍历获得目标文件夹全部文件
def getFiles(path):
for children in os.listdir(path):
if os.path.isfile(path + '\\' + children):
listFiles.append(path + '\\' + children)
else:
getFiles(path + '\\' + children)
# 获得文件名列表
getFiles(r'd:\test')
strQueryText = input('输入搜索关键字:')
listQueryResult = []
# [函数]判断文件为docx还是doc,分别用不同的库打开,并判断包含。
def toQuery():
for curFile in listFiles:
if os.path.splitext(curFile) == ".docx":
strQueryContent = ''
curDocument = Document(curFile)
for paragraph in curDocument.paragraphs:
strQueryContent = strQueryContent + paragraph.text
if strQueryText in strQueryContent:
listQueryResult.append(curFile)
print(curFile)
elif os.path.splitext(curFile) == ".doc":
strQueryContent = ''
word = Dispatch('Word.Application')
# word = DispatchEx('Word.Application') # 启动独立的进程
word.Visible = 0
word.DisplayAlerts = 0
doc = word.Documents.Open(FileName=curFile, Encoding='gbk')
for para in doc.paragraphs:
strQueryContent = strQueryContent + para.Range.Text
for t in doc.Tables:
for row in t.Rows:
for cell in row.Cells:
strQueryContent = strQueryContent + cell.Range.Text
doc.Close()
word.Quit
if strQueryText in strQueryContent:
listQueryResult.append(curFile)
print(curFile)
else:
print('[注意] 仅支持docx或doc文件,' + curFile + '被忽略。')
# 开始查询
toQuery()
# 输出结果
if len(listQueryResult) > 0:
print('[结果] 包含关键字的文件:')
print(listQueryResult)
else:
print('[结果] 无包含关键字的搜索结果')
norakura 发表于 2020-12-17 21:24
直接搜索文件夹里word文档的关键词吗?牛逼。。。。我经常要找文件翻半天文件夹 会编程就是厉害啊
对头,就是这个意思{:301_992:} 直接搜索文件夹里word文档的关键词吗?牛逼。。。。我经常要找文件翻半天文件夹 会编程就是厉害啊 牛B。支持。学习一下{:1_921:} 谢谢搂主分享! 赞一个! 运行 报错,我研究下 牛逼,好功能 感觉win7自带搜索可以搜文档内内容的 xfmiao 发表于 2020-12-18 09:32
运行 报错,我研究下
如果报错应该说你的库引入问题。
页:
[1]
2