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

Python中如何读取CSV文件并生成逐字段拆分的标准嵌套列表

读取结果不符合预期的核心原因

csv.reader 默认以逗号(,)作为字段分隔符识别行内内容,你的测试文件test.csv 行内根本不存在逗号分隔符,因此每一行会被识别为一个完整的字符串,直接作为内层列表的唯一元素存入,无法拆分成独立的字段元素。
从你实际运行后的输出结果来看,你的文件行内实际是用分号;做字段分隔;你贴出的原始文件预览里则是用空格做分隔,两种情况只要在初始化读取器时显式指定和文件匹配的分隔符,就能拿到目标结构的嵌套列表。

对应调整代码

根据你文件实际使用的分隔符选择对应写法即可:

  • 若文件用分号;分隔字段(和你终端打印的输出内容匹配):
    import csv
    # 补充newline='' 是csv模块官方推荐的文件打开参数,避免跨平台读取时出现多余空行
    with open("test.csv", newline='') as file:
        # 显式指定分隔符为分号
        reader = csv.reader(file, delimiter=';')
        my_list = list(reader)
    print(my_list)
    
  • 若文件用空格分隔字段(和你贴的原始文件内容预览匹配):
    注意如果直接指定delimiter=' ',连续的多个空格会被识别为空字段,需要配合skipinitialspace=True参数跳过字段前的多余空格,适配不规则空格分隔的场景:
    import csv
    with open("test.csv", newline='') as file:
        reader = csv.reader(file, delimiter=' ', skipinitialspace=True)
        my_list = list(reader)
    print(my_list)
    

调整后运行的输出就完全匹配你期望的结构:

[['a', 'b', 'c', 'd'], ['1', '10', '100', '1000'], ['2', '20', '200', '2000'], ['3', '30', '300', '3000'], ['4', '40', '400', '4000'], ['5', '50', '500', '5000']]

小提示: 部分非英文系统生成的CSV文件会默认用分号代替逗号当分隔符,这是行业常见的兼容问题,读取的时候先确认文件实际的分隔符再配置参数,就不会出现整行不拆分的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 08:24:03