对txt文档中指定词语的词频统计

用ChatGPT写了一个指定的词频统计的代码,对当前目录下data文件夹中所有的txt文档进行统计,txt文档名的格式是“01_2023-01-01.txt”,并将结果保存在Excel中。

# 修改一下`count_keywords`函数,使其返回一个字典,其中键为文件名,值为一个包含指定词语出现频率的列表。
# 然后在`save_to_excel`函数中将文件名拆分成两个部分,分别写入excel的第一列和第二列。具体代码如下:


import os
import xlwt

# 指定词语列表
 keywords = ['词语1', '词语2', '词语3']
# 统计每个文件中指定词语的出现频率
def count_keywords(filename):
    with open(filename, 'r', encoding='utf-8') as f:
        content = f.read()
        count_list = [content.count(keyword) for keyword in keywords]
        # print(count_list)
        return {os.path.basename(filename): count_list}

# 遍历目录下的所有txt文件
def traverse_files(dir):
    file_list = []
    for root, dirs, files in os.walk(dir):
        for file in files:
            if file.endswith('.txt'):
                file_list.append(os.path.join(root, file))
    return file_list

# 将统计结果保存到excel
def save_to_excel(file_list, data):
    wb = xlwt.Workbook()
    ws = wb.add_sheet('Sheet1')
    ws.write(0, 0, '代号')
    ws.write(0, 1, '日期')
    for i, keyword in enumerate(keywords):
        ws.write(0, i+2, keyword)
    for i, file in enumerate(file_list):
        filename, date = os.path.splitext(os.path.basename(file))[0].split('_')
        ws.write(i+1, 0, filename)
        ws.write(i+1, 1, date)
        for j, count in enumerate(data[i][os.path.basename(file)]):
            ws.write(i+1, j+2, count)
    wb.save('result.xls')

if __name__ == '__main__':
    dir = './data'  #./data为txt文档所在的文件夹
    file_list = traverse_files(dir)
    data = [count_keywords(file) for file in file_list]
    # print(file_list)
    save_to_excel(file_list, data)

# `count_keywords`函数返回一个字典,其中键为文件名(不包含路径和后缀), 值为一个包含指定词语出现频率的列表。
# `save_to_excel`函数将文件名拆分成两个部分,分别写入excel的第一列和第二列。
# 注意,这里假设文件名的格式是“01_2023-01-01.txt”, 文件名中的“01”为第一列,日期“2023-01-01”为第二列。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小二康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值