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

Python导入文本文件拆分行值生成元组列表时报AttributeError如何解决

问题原因与解决代码

报错根源

你报错的行写的是[lines.split(" ",1) for line in lines],这里lines是存储所有行的列表,列表没有split方法,你应该对遍历出的单个行元素line调用split方法。另外你还存在几个逻辑问题:

  • split加了第二个参数1,只会把每行拆成2个元素,无法适配任意维度的行数据
  • 没有把拆分后的字符串数值转换为float类型,最终元组里存的会是字符串而非数值
  • 错误地把整个行列表转成单个元组添加到结果,而非逐行转换元组后添加

修正后可运行代码

def data_import(x):
    data_file = []
    with open(x, 'r', encoding='utf-8') as datax:
        for line in datax:
            # 逐行处理:去除首尾空白→按空格拆分→转float→转元组→加入结果列表
            line_items = tuple(float(item) for item in line.strip().split())
            data_file.append(line_items)
    return data_file

代码说明

  • 直接迭代文件对象即可逐行读取,不需要提前调用readlines()把所有内容加载到内存,大文件场景下效率更高
  • split()不带参数时会自动按任意空白字符(空格、制表符、多个连续空格等)拆分,自动忽略首尾空白,兼容更复杂的文本格式
  • 逐行转换为float类型的元组后添加到结果列表,自动适配每行不同的元素数量,满足不同维度行数据的需求
  • 显式指定encoding参数避免不同系统默认编码不一致导致的读取错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:27:02