最近遇到了这样一个需求,有非常多的文件,老板让我挨个在这些文件里找某某关键词。
这种繁复的操作当然不能真的人工去做,我选择用python
首先,需要获取所有的docx文件名,方便后续在docx文件中查找。
import os
def search_files(directory):
# 创建一个空列表用来保存结果
result = []
# 遍历文件夹中的所有文件
for root, _, files in os.walk(directory):
for file in files:
# 如果文件是 docx 文件,就将文件名添加到结果列表中
if file.endswith('.docx'):
result.append(file)
return result
获取 docx 文件名后,依次打开并读取即可
import docx
def search_file(file_names, text):
# 读取 docx 文件
for file_name in file_names:
doc = docx.Document(file_name)
# 遍历文件中的所有段落
for paragraph in doc.paragraphs:
# 如果段落中包含特定文本,就返回 True
if text in paragraph.text:
print(file_name)
break
完整代码如下:
import os
def search_files(directory):
# 创建一个空列表用来保存结果
result = []
# 遍历文件夹中的所有文件
for root, _, files in os.walk(directory):
for file in files:
# 如果文件是 docx 文件,就将文件名添加到结果列表中
if file.endswith('.docx'):
result.append(file)
return result
import docx
def search_file(file_names, text):
# 读取 docx 文件
for file_name in file_names:
doc = docx.Document(file_name)
# 遍历文件中的所有段落
for paragraph in doc.paragraphs:
# 如果段落中包含特定文本,就返回 True
if text in paragraph.text:
print(file_name)
break
# 搜索文件夹中的 docx 文件
file_names = search_files('C:/Users/CauZh/Desktop/党政联席会')
# 搜索特定文本
search_file(file_names, '研究生')
试运行:
2023年1月14日13:57:27