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

请求分析words_from_file函数的功能实现正确性

代码问题分析与修正

你的代码存在几个关键问题,导致无法实现“读取文件并将每个单词逐行写入另一个文件”的需求:

  • 文件打开逻辑错误:每次循环读取原文件的一行时,都用'w'模式打开目标文件,这会清空目标文件的原有内容,最终目标文件只会保留原文件最后一行的处理结果。应该把目标文件的打开操作放在外层循环之外,避免重复打开清空。
  • 单词分割逻辑错误:for word in lines是逐个遍历字符串的字符,而非按单词分割。要提取每行的单词,应该用lines.split()方法,它会按空白字符分割出每行的所有单词。
  • 写入方法使用不当:writelines()用于写入多个字符串组成的序列,单个单词用write()更合适;另外要实现每个单词逐行写入,需要在每个单词后添加换行符'\n'。
  • 异常捕获过于宽泛:except:会捕获所有异常,包括语法错误、权限错误等,不利于排查问题,应该捕获特定的FileNotFoundError,同时保留通用异常处理来捕获其他意外情况。

修正后的代码

def words_from_file(filename1, filename2):
    try:
        # 同时打开原文件和目标文件,目标文件仅打开一次
        with open(filename1, 'r') as f, open(filename2, 'w') as g:
            for line in f:
                # 按空白字符分割每行的单词
                words = line.split()
                for word in words:
                    # 每个单词后添加换行符并写入
                    g.write(word + '\n')
    except FileNotFoundError:
        print("Error: 文件未找到")
    except Exception as e:
        print(f"发生未知错误: {e}")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:00:56