要利用 Python 批量统计文件夹下 docx 文件中的特定关键词词频,并将输出结果导出到 Excel,可以按照以下步骤进行操作:

  1. 导入必要的模块
import os
import re
import docx
import openpyxl
  1. 定义函数来读取 docx 文件并计算词频
def count_words(filename, keywords):
    # 读取 docx 文件
    doc = docx.Document(filename)
    # 初始化计数器
    word_counts = {keyword: 0 for keyword in keywords}
    # 遍历每个段落
    for para in doc.paragraphs:
        # 遍历每个关键词
        for keyword in keywords:
            # 统计关键词出现的次数
            word_counts[keyword] += len(re.findall(keyword, para.text))
    return word_counts
  1. 遍历文件夹中的所有 docx 文件,并调用函数来计算词频
# 定义文件夹路径和关键词列表
folder_path = 'path/to/folder'
keywords = ['keyword1', 'keyword2', 'keyword3']

# 初始化结果列表
results = []

# 遍历文件夹中的所有 docx 文件
for filename in os.listdir(folder_path):
    if filename.endswith('.docx'):
        file_path = os.path.join(folder_path, filename)
        # 调用函数计算词频
        word_counts = count_words(file_path, keywords)
        # 将结果添加到列表中
        results.append({'filename': filename, **word_counts})
  1. 将结果导出到 Excel 文件中
# 创建 Excel 文件
workbook = openpyxl.Workbook()
worksheet = workbook.active

# 将表头写入 Excel 文件
headers = ['filename'] + keywords
for col, header in enumerate(headers, start=1):
    worksheet.cell(row=1, column=col, value=header)

# 将结果写入 Excel 文件
for row, result in enumerate(results, start=2):
    for col, header in enumerate(headers, start=1):
        worksheet.cell(row=row, column=col, value=result.get(header))

# 保存 Excel 文件
workbook.save('output.xlsx')

完整代码如下:

import os
import re
import docx
import openpyxl

def count_words(filename, keywords):
    # 读取 docx 文件
    doc = docx.Document(filename)
    # 初始化计数器
    word_counts = {keyword: 0 for keyword in keywords}
    # 遍历每个段落
    for para in doc.paragraphs:
        # 遍历每个关键词
        for keyword in keywords:
            # 统计关键词出现的次数
            word_counts[keyword] += len(re.findall(keyword, para.text))
    return word_counts

folder_path = 'path/to/folder'
keywords = ['keyword1', 'keyword2', 'keyword3']

results = []

for filename in os.listdir(folder_path):
    if filename.endswith('.docx'):
        file_path = os.path.join(folder_path, filename)
        word_counts = count_words(file_path, keywords)
        results.append({'filename': filename, **word_counts})

workbook = openpyxl.Workbook()
worksheet = workbook.active

headers = ['filename'] + keywords
for col, header in enumerate(headers, start=1):
    worksheet.cell(row=1, column=col, value=header)

for row, result in enumerate(results, start=2):
    for col, header in enumerate(headers, start=1):
        worksheet.cell(row=row, column=col, value=result.get(header))

workbook.save('output.xlsx')
Python 批量统计 docx 文件关键词词频并导出到 Excel

原文地址: http://www.cveoy.top/t/topic/mLHc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录