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

求助:无法给读取CSV生成二维列表的函数传入文件名参数

解决CSV读取函数无法传入文件名参数的问题

1. 先确认函数定义是否正确接收参数

这是最常见的问题——函数根本没写接收文件名的参数,自然传不进去。

错误写法:

def read_file():
    # 硬编码了文件名,根本没留参数入口
    with open("test.csv", 'r') as f:
        pass

正确写法:把文件名作为参数定义在函数里:

def read_file(filename):
    # 用传入的filename参数打开文件
    with open(filename, 'r', encoding='utf-8') as f:
        pass

2. 检查调用函数时的传参是否正确

别犯“定义了参数但调用时不传”的错误:

错误调用:

# 没传文件名,直接调用
data = read_file()

正确调用:传入具体的文件名(支持相对/绝对路径):

# 当前目录下的文件
data1 = read_file("students.csv")
# 子目录里的文件
data2 = read_file("./data/scores.csv")
# 绝对路径
data3 = read_file("C:/Users/xxx/Documents/teachers.csv")

3. 提前排查文件路径问题

如果传参后报FileNotFoundError,大概率是路径不对:

  • 先确认文件名拼写(注意Linux/macOS大小写敏感)
  • 用os.getcwd()查看脚本当前运行的目录,确认文件是否在这个目录里:
import os
print(os.getcwd())  # 输出当前工作目录

4. 完整可运行的示例代码

结合CSV命名列表的需求,给一个完整实现:

import csv

def read_file(filename):
    """读取CSV并返回命名的二维列表(每行是一个字典)"""
    named_rows = []
    try:
        with open(filename, 'r', encoding='utf-8') as csv_file:
            # DictReader会自动用表头作为键,生成字典行
            reader = csv.DictReader(csv_file)
            named_rows = list(reader)
        return named_rows
    except FileNotFoundError:
        print(f"错误: 文件 {filename} 不存在")
        return None
    except Exception as e:
        print(f"读取出错: {str(e)}")
        return None

# 调用示例
student_data = read_file("students.csv")
if student_data:
    print("第一行学生数据:", student_data[0])

score_data = read_file("scores.csv")
if score_data:
    print("第一行分数数据:", score_data[0])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 23:39:21