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

Python实现load_datafile、load_wordfile函数运行异常求助

Python文件处理功能实现方案

现有代码问题排查

你提供的load_datafile代码存在以下问题:

  • 函数形参定义错误:将固定字符串作为形参,不符合接收任意文件名参数的要求
  • 读取文件路径写死:open方法中直接传入固定文件名,没有使用传入的参数值
  • 仅读取了文件最后一行内容:lines[-1]只取了行列表的最后一个元素,没有覆盖全部文件内容
  • 返回值为空:定义的data变量始终是空字符串,没有将处理后的内容赋值给返回变量
  • 缺失异常处理逻辑:没有捕获文件不存在的相关异常

正确实现代码

def load_datafile(filename: str) -> str:
    try:
        with open(filename, 'r', encoding='utf-8') as file:
            # 读取全部内容转小写后返回
            return file.read().lower()
    except FileNotFoundError:
        print(f"错误:文件 {filename} 不存在")
        return ""
    except OSError as e:
        print(f"读取文件时发生错误:{str(e)}")
        return ""


def load_wordfile(filename: str) -> list:
    word_list = []
    try:
        with open(filename, 'r', encoding='utf-8') as file:
            for line in file:
                # 去除每行首尾的空白、换行符,跳过空行
                word = line.strip()
                if word:
                    word_list.append(word)
        return word_list
    except FileNotFoundError:
        print(f"错误:文件 {filename} 不存在")
        return []
    except OSError as e:
        print(f"读取词表文件时发生错误:{str(e)}")
        return []

功能验证说明

你可以直接用需求中的示例调用测试:

  1. 测试load_datafile:
data = load_datafile('harry.txt')
print(data)

输出将和要求的示例一致,为全小写的全文内容。
2. 测试load_wordfile:

pos_words = load_wordfile("positivewords.txt")
print(pos_words[2:9])
neg_words = load_wordfile("negativewords.txt")
print(neg_words[10:19])

输出将匹配示例给出的词表切片结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:36:10