You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将两个字典写入TXT文件?求助第3、4步Python实现

文本分析任务:文件写入与函数整合解决方案

我看你已经搞定了前两个统计功能的函数,卡在了文件写入和批量调用这两步对吧?别慌,我一步步给你捋清楚怎么修改和实现:

第一步:调整现有函数,让它们返回统计结果

原来的函数直接打印字典,没法把数据传给后续的写入步骤,我们先修改成返回字典,同时用更安全的with语句处理文件:

修改词长统计函数

def make_length_wordcount(filename):
    # 直接传入完整文件名(比如"nasdaq.txt")
    with open(filename, 'r') as infile:
        wordlist = infile.read().split()
    counter1 = {}
    for word in wordlist:
        word_length = len(word)
        # 用get方法简化计数逻辑,避免if-else判断
        counter1[word_length] = counter1.get(word_length, 0) + 1
    return counter1  # 返回统计好的字典,而非直接打印

修改词频统计函数

def make_word_count(filename):
    with open(filename, 'r') as infile:
        # 读取后直接转小写并拆分单词
        words = infile.read().lower().split()
    word_freq = {}
    for word in words:
        word_freq[word] = word_freq.get(word, 0) + 1
    return word_freq

第二步:实现analyze_text()函数,完成文件写入

这个函数要整合两个统计函数,生成指定格式的输出文件,并把统计结果写入:

def analyze_text(input_filename, first_name, last_name):
    # 生成符合要求的输出文件名:比如输入"nasdaq.txt",输出"nasdaq_analyzed_HYUN_KANG.txt"
    base_name = input_filename.split('.')[0]
    output_filename = f"{base_name}_analyzed_{first_name.upper()}_{last_name.upper()}.txt"
    
    # 调用两个统计函数获取结果
    length_count_dict = make_length_wordcount(input_filename)
    word_freq_dict = make_word_count(input_filename)
    
    # 打开输出文件并写入内容
    with open(output_filename, 'w') as outfile:
        # 写入词长-数量统计模块,加标题提升可读性
        outfile.write("=== 词长-单词数量统计 ===\n")
        # 按词长从小到大排序后写入
        for length in sorted(length_count_dict.keys()):
            outfile.write(f"单词长度 {length}: {length_count_dict[length]} 个\n")
        
        # 空行分隔两个模块
        outfile.write("\n=== 单词出现频率统计 ===\n")
        # 按出现次数从高到低排序,更直观
        for word, count in sorted(word_freq_dict.items(), key=lambda x: x[1], reverse=True):
            outfile.write(f"{word}: {count} 次\n")

第三步:批量调用函数,生成三个分析文件

在hw2_FIRST_LAST.py(比如hw2_HYUN_KANG.py)的末尾添加调用代码,替换成你自己的名字:

if __name__ == "__main__":
    # 三次调用,分别处理三个输入文件
    analyze_text("nasdaq.txt", "HYUN", "KANG")
    analyze_text("raven.txt", "HYUN", "KANG")
    analyze_text("frankenstein.txt", "HYUN", "KANG")

关键知识点说明

  • with语句:Python处理文件的最佳实践,自动帮你打开和关闭文件,避免手动close可能导致的资源泄漏问题。
  • 函数返回值:让函数返回字典而非直接打印,才能让统计结果被后续步骤复用,这是模块化编程的基础。
  • 排序输出:对统计结果排序后写入,能让生成的分析文件更易读,用户可以快速找到最长/最短单词、高频单词等信息。

内容的提问来源于stack exchange,提问作者haroharo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:24:48