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

Python读取文本文件生成嵌套列表时如何去除换行符\n

解决方案

你原代码存在两个核心问题:

  • split(')属于语法笔误,缺少闭合引号与分隔符,根据你的文件格式,分隔符应为逗号,
  • 读取行内容时未处理行尾自带的\n换行符,分割后也没有清理元素前后的多余空格

可直接运行的实现代码

推荐使用with上下文管理器打开文件,会自动完成文件关闭操作,避免资源泄漏:

table = []
# 注意替换encoding为你的文件实际编码,常见的有utf-8、gbk
with open("test_file.txt", "r", encoding="utf-8") as file:
    for line in file:
        # 先去除整行首尾的空白字符(包含\n、首尾多余空格、制表符等)
        line_stripped = line.strip()
        # 跳过文件中可能存在的空行
        if not line_stripped:
            continue
        # 按逗号分割行内容,再对每个分割后的元素去除前后多余空格
        row = [item.strip() for item in line_stripped.split(',')]
        table.append(row)

运行后table的输出完全符合你的预期:

[['Beans', '1222', '422', '6712'], ['Eggs', '4423', '122', '2231'], ['Tomato', '2232', '224', '2321']]

简洁写法(列表推导式)

如果偏好更短的代码,可以直接用嵌套列表推导式实现完全相同的效果:

with open("test_file.txt", "r", encoding="utf-8") as file:
    table = [
        [item.strip() for item in line.strip().split(',')]
        for line in file
        if line.strip()
    ]

之前尝试的方法问题说明

  • 直接用readlines()遍历:没有做strip()处理,所以会保留每行末尾的\n,分割后逗号后的空格也会留在元素开头
  • 用read().splitlines():只解决了换行符问题,没有对每一行做二次分割和元素去空格处理,所以只能得到一维的整行字符串列表,只要在这个结果的基础上补充分割+去空格逻辑即可,和上面的实现逻辑一致。

如果后续需要对列表里的数值做计算,可以在处理元素时直接转成整数,注意第一列是食材名称,跳过转换即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 21:27:35